Introducing the power of design patterns
So what is a design pattern? Actually, the phrase design pattern is not associated with any programming language, and also it doesn't provide language-specific solutions to problems. A design pattern is associated with the solution to repetitive problems. For example, if any problem occurs frequently, a solution to that problem has been used effectively. Any non-reusable solution to a problem can't be considered a pattern, but the problem must occur frequently in order to have a reusable solution, and to be considered as a pattern. So a design pattern is a software engineering concept describing recurring solutions to common problems in software design. Design patterns also represent the best practices used by experienced object-oriented software developers.
When you make a design for an application, you should consider all the solutions to common problems, and these solutions are called design patterns. The understanding of design patterns must be good across the developer team so that the staff can communicate with each other effectively. In fact, you may be familiar with some design patterns; however, you may not have used well-known names to describe them. This book will take you through a step-by-step approach and show you examples that use Java while you learn design pattern concepts.
A design pattern has three main characteristics:
- A Design pattern is specific to a particular scenario rather than a specific platform. So its context is the surrounding condition under which the problem exists. The context must be documented within the pattern.
- Design patterns have been evolved to provide the best solutions to certain problems faced during software development. So this should be limited by the context in which it is being considered.
- Design patterns are the remedy for the problems under consideration.
For example, if a developer is referring to the GOF Singleton design pattern and signifies the use of a single object, then all developers involved should understand that you need to design an object that will only have a single instance in the application. So the Singleton design pattern will be composed of a single object and the developers can tell each other that the program is following a Singleton pattern.