design patterns background design patterns background
play

Design Patterns: Background Design Patterns: Background Five - PDF document

Five Principles (revisited) Design Patterns: Background Design Patterns: Background Five Principles (revisited) Architectural design patterns Architectural design patterns 1. 1. Single Single- - Responsibility Principle


  1. Five Principles (revisited) Design Patterns: Background Design Patterns: Background Five Principles (revisited) � � Architectural design patterns Architectural design patterns 1. 1. Single Single- - Responsibility Principle Responsibility Principle � � Christopher Alexander Christopher Alexander et al. et al. : : A Pattern Language A Pattern Language , 1977 , 1977 � Christopher Alexander: � 2. Open Open– –Closed Principle Closed Principle Christopher Alexander: The Timeless Way of Building The Timeless Way of Building , , 2. 1979 1979 � World consists of repeating instances of various � World consists of repeating instances of various 3. Liskov Substitution Principle 3. Liskov Substitution Principle patterns patterns 4. Depency Depency- - Inversion Principle Inversion Principle � a pattern is (possibly hidden) design know � 4. a pattern is (possibly hidden) design know- - how that how that should be made explicit should be made explicit � � ‘a quality without name’: not measurable but 5. Interface 5. Interface- - Segregation Principle Segregation Principle ‘a quality without name’: not measurable but recognizable recognizable � � User User- - centred design centred design � � capture the quality in a pattern language capture the quality in a pattern language � inhabitants should design their own buildings together � inhabitants should design their own buildings together with a professional using the patterns with a professional using the patterns Alexander’s Patterns Alexander’s Patterns (cont’d) Alexander’s Patterns Alexander’s Patterns (cont’d) � What do high � What do high- - quality contructs have in common? quality contructs have in common? ‘Each pattern describes a problem which ‘Each pattern describes a problem which � � Structures cannot be separated from the Structures cannot be separated from the occurs over and over again in our occurs over and over again in our problems they are solving problems they are solving environment, and then describes the core environment, and then describes the core � Similarities in the solution structures → a pattern � Similarities in the solution structures → a pattern of the solution to that problem, in such a of the solution to that problem, in such a � � Each pattern defines subproblems solved by Each pattern defines subproblems solved by way that you can use this solution a way that you can use this solution a other sm aller patterns other sm aller patterns million times over, without ever doing it million times over, without ever doing it � A pattern is a rule that expresses a relation � A pattern is a rule that expresses a relation between between the same way twice.’ the same way twice.’ � a context � a context – C. Alexander, C. Alexander, The Timeless Way of The Timeless Way of – � a problem and � a problem and Building , 1979 , 1979 Building � � a solution a solution Software Design Patterns Software Design Patterns (cont’d) Software Design Patterns Software Design Patterns (cont’d) ‘[ Patterns] are descriptions � Reusable solutions to general design problems � ‘[ Patterns] are descriptions Reusable solutions to general design problems of communicating objects of communicating objects � Represent solutions to problems that arise when � Represent solutions to problems that arise when and classes that are and classes that are customized to solve a customized to solve a developing software within a particular context developing software within a particular context general design problem in general design problem in � design pattern = � design pattern = problem problem – – solution solution pair in a pair in a context context a particular context.’ a particular context.’ � � basic steps remain the same but the exact way of basic steps remain the same but the exact way of applying a pattern is always different applying a pattern is always different ‘A design pattern names, ‘A design pattern names, abstracts, and identifies � � Capture well abstracts, and identifies Capture well- - proven experience in software proven experience in software the key aspects of a the key aspects of a development development common design structure common design structure that make it useful for that make it useful for � � static and dynamic structure static and dynamic structure creating a reusable object - creating a reusable object - � � collaboration among the key participants collaboration among the key participants oriented design.’ oriented design.’ � Facilitate the reuse of successful software � Facilitate the reuse of successful software architectures and designs architectures and designs – – E. Gamma (1995): E. Gamma (1995): 1

Recommend


More recommend