Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Discussion 2 - Nazli Dokuzoglu
Discussion 2 - Nazli Dokuzoglu
Part 1: What are the differences between creational, structural, and behavioral patterns?
Design patterns are “standard solutions to common problems in solutions to common problems in software design”. Design patterns are systematic approaches to general software problems instead of the particular and specific ones, and they “describe abstract systems of interaction between classes, objects, and communication flow.” Design patterns can speed up the software development process since they provide some software development templates and patterns. 
Design patterns can be classified into classes according to the basic underlying the problem they solve: Creational Design Patterns, Structural Design Patterns and Behavioral Design Patterns.
Creational Design Patterns deal with the object creation mechanisms and they define how to create objects in a suitable way for the general situation. Creational design patterns solve the design problems related to object creation and the problems related with the complexity of the software program. 
Structural Design Patterns deal with the relations between the objects and they identify a simpler way to realize relationships between entities by this way these patterns ease the design process. 
Behavioral Design Patterns deal with the communication between the objects and they identify common communication patterns between objects and realize these patterns by this way they increase the flexibility of the communication between the objects. 
Although all these design patterns serve to speed up the software by suggesting standard solutions to common software problems each design pattern concerns with a different approach to a software problem. Creational pattern is concerned with the object creation mechanisms. Such as singleton pattern which is a creational pattern restricts instantiation of a class to one object. On the other hand, structural pattern is concerned with the relations between the objects, for example in container pattern objects are created for holding other objects. Lastly, behavioral pattern concerns with the communication between the objects, for example memento pattern provides the ability to restore the object to its previous state.
Part 2: Facade Pattern
Facade pattern is a structural design pattern and it provides a simpler interface to the other complex interfaces in the subsystem. In facade pattern there is a higher level interface which hides the client to reach the other lower level interfaces, in a way this pattern abstracts the implementation of the code. It is an object oriented design pattern and it can be used to make the software more understandable and easier to use, and separate the inner workings of the system from the outside dependencies thus creating a more flexible and independent environment. 
I chose facade pattern because I implemented facade pattern in the software I developed during my internship this summer. I can see how the pattern can be implemented in code and I think that it is a very useful pattern for simplifying and abstracting the code.
The sentences in quotations are direct quotations from the websites; rest of the document is the summary of the information found from the references below in my own words.
 Wikipedia. “Design Patterns” http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
 Wikipedia. “Creational Pattern” http://en.wikipedia.org/wiki/Creational_pattern
 Wikipedia. “Structural Pattern” http://en.wikipedia.org/wiki/Structural_pattern
 Wikipedia. “Behavioral Pattern” http://en.wikipedia.org/wiki/Behavioral_pattern
 “Facade Pattern” http://www.research.umbc.edu/~tarr/dp/lectures/Facade-2pp.pdf
Links to this Page
- Nazli Dokuzoglu last edited on 4 December 2005 at 11:50 pm by lawn-199-77-214-240.lawn.gatech.edu
- Fall 2005 Discussion 2 last edited on 3 October 2005 at 4:29 pm by adsl-068-209-116-021.sip.asm.bellsouth.net