Design patterns - main categories

Question posted in Computer Software on 11 2009
Rate question difficulty level 0 Votes
Which are the three main categories of design patterns ?
 
 
2 Answers
 

1. Creational patterns - creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or added complexity to the design. Creational design patterns solve this problem by somehow controlling this object creation.


Some examples of creational design patterns include:


Abstract factory pattern: centralize decision of what factory to instantiate
Factory method pattern: centralize creation of an object of a specific type choosing one of several implementations
Builder pattern: separate the construction of a complex object from its representation so that the same construction process can create different representations
Lazy initialization pattern: tactic of delaying the creation of an object, the calculation of a value, or some other expensive process until the first time it is needed
Object pool: avoid expensive acquisition and release of resources by recycling objects that are no longer in use
Prototype pattern: used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects
Singleton pattern: restrict instantiation of a class to one object


2. Structural patterns - structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities.


Examples of Structural Patterns include:


Adapter pattern: 'adapts' one interface for a class into one that a client expects
Retrofit Interface Pattern: An adapter used as a new interface for multiple classes at the same time.
Adapter pipeline: Use multiple adapters for debugging purposes.
Aggregate pattern: a version of the Composite pattern with methods for aggregation of children
Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently
Tombstone: An intermediate "lookup" object contains the real location of an object.
Composite pattern: a tree structure of objects where every object has the same interface
Decorator pattern: add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes
Extensibility pattern: aka. Framework - hide complex code behind a simple interface
Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks
Flyweight pattern: a high quantity of objects share a common properties object to save space
Proxy pattern: a class functioning as an interface to another thing
Pipes and filters: a chain of processes where the output of each process is the input of the next
Private class data pattern: restrict accessor/mutator access

3. Behavioral pattern - behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.

Examples of this type of design pattern include:


Chain of responsibility pattern: Command objects are handled or passed on to other objects by logic-containing processing objects
Command pattern: Command objects encapsulate an action and its parameters
"Externalize the Stack": Turn a recursive function into an iterative one that uses a stack.
Interpreter pattern: Implement a specialized computer language to rapidly solve a specific set of problems
Iterator pattern: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation
Mediator pattern: Provides a unified interface to a set of interfaces in a subsystem
Memento pattern: Provides the ability to restore an object to its previous state (rollback)
Null Object pattern: designed to act as a default value of an object
Observer pattern: aka Publish/Subscribe or Event Listener. Objects register to observe an event which may be raised by another object
Weak reference pattern: De-couple an observer from an observable.
Protocol stack: Communications are handled by multiple layers, which form an encapsulation hierarchy.
State pattern: A clean way for an object to partially change its type at runtime
Strategy pattern: Algorithms can be selected on the fly
Specification pattern: Recombinable Business logic in a boolean fashion
Template method pattern: Describes the program skeleton of a program
Visitor pattern: A way to separate an algorithm from an object
Single-serving visitor pattern: Optimise the implementation of a visitor that is allocated, used only once, and then deleted
Hierarchical visitor pattern: Provide a way to visit every node in a hierarchical data structure such as a tree.
Scheduled-task pattern: A task is scheduled to be performed at a particular interval or clock time (used in real-time computing)


11/12/2009
 
 
The diversity of the world and its parts, patterns, birth and death of different objects, interaction between them requires to split them on different categories with functional and commons characteristics for in order to describe their essence.
Various languages of programming have similar tools to describe the objects of their interaction and management over them. The specialization of programming languages depends from a set of templates and ways to describe objects. These sets are completed and well-developed parts used to describe the behavior of the object and its interaction with other objects as well as control over them. The application of these templates according to the idea of author for problem describing is the essence of programming languages. An inheritance allows you more accurately describe the object and its properties. Known templates for example such as Factory, Prototype, Adapter, Aggregate, Schedule, Specification and more low level List, Queue, Stack, Array, Pipe and more low level of types as integer, char, string, float and many other are applied by programmers today.

11/14/2009
 
 
Add an answer*
 
Your name
Email
 

add a question

arrow_blue


Now hiring!
---------------------------
---------------------------
---------------------------
---------------------------
Mercer 
---------------------------
---------------------------
---------------------------