CSC/ECE 517 Fall 2012/ch2b 2w35 av
Introduction
One of the most complex tasks in creating a software is designing it to meet the needs of the user. Designing an object-oriented components of software that is reusable is hard. One must find pertinent objects, factor them into classes at the right granularity, define class interfaces and inheritance hierarchies, and establish key relationships among them. It should also be taken care that the design is specific to a problem at hand and also general enough to accommodate future changes. Knowledge of design patterns helps in such scenarios. Essentially, Design patterns describe a problem which occurs over and over again in an environment, and then describes the core of the solution to that problem, in such a way that one can use this solution a million times over, without ever doing it the same way twice
Classes of Design Patterns
Design patterns are generally classified into the one of the following three categories.
Creational Pattern, which help create the objects for the user, instead of having the user to instantiate the object. Structural Pattern, which employ interfaces to achieve inheritance to enable objects to obtain new functionality. Behavioral Pattern, which are concerned with communication between objects.
Builder Pattern
The intent of Builder pattern is to separate the construction of a complex object from its representation so that the same construction process can create different representations.