1 design patterns object-oriented design. 2 design patterns 4reuse of design knowledge and...
TRANSCRIPT
![Page 1: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/1.jpg)
1
Design PatternsDesign Patterns
Object-Oriented DesignObject-Oriented Design
![Page 2: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/2.jpg)
2
Design Patterns
Reuse of design knowledge and experience
Common in many engineering disciplines
Avoids “reinventing the wheel” Design Patterns, Gamma, Helm,
Johnson, Vlissides (GoF) Architecture: Christopher Alexander
![Page 3: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/3.jpg)
3
Elements of a Design Elements of a Design PatternPattern
name - simple, descriptive term
intent - brief description of aim
motivation - concrete example
applicability - where is it useful?
structure - “blueprint” diagram
participants - each class in pattern
![Page 4: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/4.jpg)
4
Elements of a Design Elements of a Design Pattern (cont’d)Pattern (cont’d)
collaborations - relationships among participants
consequences - implications of use
implementation - general implementation
sample code - code for a particular application
known uses - applications where used
related patterns - to combine or substitute
problemareas
![Page 5: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/5.jpg)
5
Example Pattern: CompositeExample Pattern: Composite
Structural pattern Represent part-whole relationships
in tree hierarchy Uniform treatment of individual
objects
![Page 6: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/6.jpg)
6
Composite: Application
Piece PartType GetType()int GetIdentifier()int GetTime()float GetQuality()int GetNumberOfRejections()SetRejectStatus(bool)bool GetRejectStatus()
CompoundPart AddPart(Part)int GetNumberOfParts()Part * Decompose()PartType GetType()int GetIdentifier()int GetTime()float GetQuality()int GetNumberOfRejections()SetRejectStatus(bool)bool GetRejectStatus()
sub-parts *
![Page 7: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/7.jpg)
7
Composite: Application
Part PartType GetType()int GetIdentifier()int GetTime()float GetQuality()int GetNumberOfRejections()SetRejectStatus(bool)bool GetRejectStatus()
CompoundPart AddPart(Part)int GetNumberOfParts()Part * Decompose()
sub-parts *
![Page 8: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/8.jpg)
8
Composite Pattern Example: Simulation Components
SimComponent
PartType GetType()int GetIdentifier()int GetTime()float GetQuality()int GetNumberOfRejections()SetRejectStatus(bool)bool GetRejectStatus()
Composite
all of ops() ...AddPart(Part)int GetNumberOfParts()Part * Decompose()
Piece
PartType GetType() ...all of the ops()...
Inheritance
Contains 1 ormore Components
in a variablecalled sub-pieces
sub-pieces
![Page 9: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/9.jpg)
9
Composite Pattern Example: A Graphic
Graphic
Draw()Add(Graphic)Remove(int)GetChild(int)
Picture
Draw()Add(Graphic)Remove(int)GetChild(int)
Text
Draw()
Rectangle
Draw()
Line
Draw()
Inheritance
Contains 1 ormore Graphicsin a variable
called graphics
graphics
for all g in graphicsg.Draw()Add/Remove Graphic
to/from list of graphics
![Page 10: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/10.jpg)
10
Composite Pattern Example: A Graphic
MailBody
Disp()Add(Attch)Remove(int)GetChild(int)
Attachments
Disp()Add(Attch)Remove(int)GetChild(int)
Pic
Disp()
Image
Disp()
Text
Disp()attchs
for all m in attchsm.Disp()
Alternatively:Display a list of attachments
![Page 11: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/11.jpg)
11
Composite:Composite:General StructureGeneral Structure
![Page 12: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/12.jpg)
12
Observer
Behavioral pattern When changed, Subject notifies
Observers
![Page 13: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/13.jpg)
13
Observer: Structure
![Page 14: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/14.jpg)
14
Observer: Sequence Diagram
![Page 15: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/15.jpg)
15
Observer: Application
Unit AddPart(Part *)GetNumberFinalParts()Part * GetFinalPart()SetTypesRequired(PartType *, int num)AddUnitObserver(UnitObserver *) NotifyObservers()
UnitObserver Update()Update(Unit *)
ProductRemovalObserver Update(Unit *)
Observer Update()
// called when unit completes a partfor all o in observers o.Update(this)
![Page 16: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/16.jpg)
16
Creational Patterns
Abstract Factory Builder Factory Method Prototype Singleton
![Page 17: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/17.jpg)
17
Structural Patterns
Adapter Bridge Composite Decorator Facade Flyweight Proxy
![Page 18: 1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids](https://reader036.vdocument.in/reader036/viewer/2022083006/56649f395503460f94c55bcb/html5/thumbnails/18.jpg)
18
Behavioral Patterns
Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor