Design Patterns
Design pattern History:
Christopher Alexander is an architect professor that describe the “Pattern Language” in 1997. It is also called the father of the Design Patterns.
Definition of the Design Pattern:
- Christopher Alexander (1977) defining as “A design pattern can also describe a problem that occurs often, along with a tried solution to the problem”.
- In the concepts of software engineering, the design pattern is used to design the software that used to solve the recurring solution of the common problem.
- A design pattern is a software which can be complex and very large and the software system is also providing the schemas for design pattern components and subsystem. The design pattern is used to identify the solution and maintain the record and also describe the recurring structure to solve the complex problem of design with a particular context. Christopher Alexander, they describe the customized communication between classes and object to solve a complex problem with a specific context. The requirement shows when and how to apply.
- Not full designs
- No Libraries or Not individual classes such as hash tables.
Gang of Four Design Pattern (GoF):
In 1994 the four authors have been describing the Gang of Four (GOF).
“ Recently 23 design of patterns are issues are called Gang of Four”.
- Erich Gamma, that was a software engineer and Telligent.
- Richard Helm was a DMR Group and Senior Technology Consultant.
- Ralph Johnson is a working Computer Science Department at the University of Illinois.
- John Vlissides that was a researcher at IBM and Thomas J. Watson is in the Research Center of the computer department.
So the authors are used the different languages and syntaxes to design the pattern. Only the detail are change but the fundamental structure is the same. This pattern is easy to implement within the Java and C++ languages. The elements of the design pattern are reusable in the object-oriented software.
Classification of the design pattern:
- Creational:
In which the process of creating it is a combination class and the objects.
- Classes Scope:
This term of class’s scope includes the relationship between class and subclass. The class means the parent class and subclass means child class. So they are both relationships between them.
- Object Scope:
Dynamic, Static and Relationships.
- Structural:
Concerns the composition of classes and objects
- Behavioral:
The behavior of the classes and objects are responsibility and interact with them.
Why pattern is needed:
- Most of the programming language is used to design the pattern.
- Manipulated and display data?
- Observer
- Sequential order (access to all the elements)
- Notification (some specific thing can happen)
Idioms:
An idiom is the low-level programming language and the idioms explain how to integrate a specific relationship between given the feature of the language.
Elements of the pattern:
Some essential elements of the pattern are used to design the perfect design of the software. There are the following elements are…
- Choose the best pattern name
- Consequences
- Problem
- Solution
Pattern Properties:
Following properties of the pattern.
- Abstraction:
- Experience and knowledge
- Encapsulation:
- Encapsulation means data hiding technique and also includes the data independent and specific data.
- Equilibrium:
- The Solution of the design pattern is equal to the minimum and maximum constraint conflicts and software engineering waterfall model.
- Compensability:
- Hierarchically
- Generativity:
- Generativity is described as how to design the system.
Framework design pattern:
The framework is not generally of an architecture design pattern. But it is a collection of the plug point it called slots and hooks. The plug point is mostly used to enable specific functions and classes. It is a collection of the framework and cooperating classes.
Gamma and his colleagues are present also following the manner of the framework
Architecture elements are smaller than the framework of a design pattern.
This type of framework cannot be embodied in the coding. For example, the only pattern can be embodied in the coding. The coding of the framework is also can be written in the programming language. It is easy to reuse the code indirectly form and cannot study the code after executing the code.
The abstract is more than the framework of the design pattern:
This class of the framework includes several design patterns and does not true the reverse design patterns.
Specialized architecture is less than the framework of the design pattern.
This type of structure should be calling in a specific domain. A more specialized form pattern is possible to use in nearly any kind of applicability (application).