A nice site at http://www.dofactory.com/Patterns/Patterns.aspx
Creates an instance of several families of classes
Separates object construction from its representation
Creates an instance of several derived classes
A fully initialized instance to be copied or cloned
A class of which only a single instance can exist
Match interfaces of different classes
Separates an object’s interface from its implementation
A tree structure of simple and composite objects
Add responsibilities to objects dynamically
A single class that represents an entire subsystem
A fine-grained instance used for efficient sharing
An object representing another object
Chain of Resp.
A way of passing a request between a chain of objects
Encapsulate a command request as an object
A way to include language elements in a program
Sequentially access the elements of a collection
Defines simplified communication between classes
Capture and restore an object's internal state
A way of notifying change to a number of classes
Alter an object's behavior when its state changes
Encapsulates an algorithm inside a class
Defer the exact steps of an algorithm to a subclass
Defines a new operation to a class without change
I have scenario based question and I want a required help please tell me how many Patterns I required to solve my problem?
We are creating an application for shape drawing. We have to support multiple shapes
like circle, rectangle, square, polygon etc. These shapes may are related to each other
like square is a type of rectangle where rectangle is also kind of polygon. We want to
have an option of theme as well in our application. This theme option will allow us to
draw shapes with some filled content like marble theme will allow us to create shapes
filled with marbles where flower theme will allow us to create shape filled with flowers.
By default user can create shapes with borders with no fill. In order to provide
convenience to user we have an imaginary shape like Frame. The idea to introduce
frame is to hold different shapes so user can move or apply effects in one go.
Create classes / interfaces for given problem?