Design patterns can speed up the development process by providing tested, provendevelopment paradigms. Effective software design requires considering issues that maynot become visible until later in the implementation. Reusing design patterns helps to prevent subtle issues that can cause major problems, and it also improves code readabilityfor coders and architects who are familiar with the patterns.In order to achieve flexibility, design patterns usually introduce additional levels of indirection, which in some cases may complicate the resulting designs and hurtapplication performance.By definition, a pattern must be programmed anew into each application that uses it.Since some authors see this as a step backward from software reuse as provided by
components, researchers have worked to turn patterns into components. Meyer andArnout claim a two-thirds success rate in componentizing the best-known patterns.
Often, people only understand how to apply certain software design techniques to certain problems. These techniques are difficult to apply to a broader range of problems. Design patterns provide general solutions,documentedin a format that doesn't require specificstied to a particular problem.
Structure
Design patterns are composed of several sections (seeDocumentation below). Of
particular interest are the Structure, Participants, and Collaboration sections. Thesesections describe a
design motif
: a prototypical
micro-architecture
that developers copyand adapt to their particular designs to solve the recurrent problem described by thedesign pattern. A micro-architecture is a set of program constituents (e.g., classes,methods...) and their relationships. Developers use the design pattern by introducing intheir designs this prototypical micro-architecture, which means that micro-architecturesin their designs will have structure and organization similar to the chosen design motif.In addition, patterns allow developers to communicate using well-known, wellunderstood names for software interactions. Common design patterns can be improvedover time, making them more robust than
ad-hoc
designs.
] Domain specific patterns
Efforts have also been made to codify design patterns in particular domains, includinguse of existing design patterns as well as domain specific design patterns. Examplesinclude User Interface design patterns,
, Secure Usability
and web design.
Classification
Leave a Comment