View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 2 - Nazli Dokuzoglu


Discussion 2 - Nazli Dokuzoglu
902163737

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. [1]

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. [2]

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. [3]

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. [4]

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. [5]

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.

References
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.

[1] Wikipedia. “Design Patterns” http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
[2] Wikipedia. “Creational Pattern” http://en.wikipedia.org/wiki/Creational_pattern
[3] Wikipedia. “Structural Pattern” http://en.wikipedia.org/wiki/Structural_pattern
[4] Wikipedia. “Behavioral Pattern” http://en.wikipedia.org/wiki/Behavioral_pattern
[5] “Facade Pattern” http://www.research.umbc.edu/~tarr/dp/lectures/Facade-2pp.pdf

Links to this Page