SlideShare a Scribd company logo
+visitElementA(in a : ConcreteElementA)
+visitElementB(in b : ConcreteElementB)
«interface»
Visitor
+visitElementA(in a : ConcreteElementA)
+visitElementB(in b : ConcreteElementB)
ConcreteVisitor +accept(in v : Visitor)
«interface»
Element
+accept(in v : Visitor)
ConcreteElementA
+accept(in v : Visitor)
ConcreteElementB
Client
Visitor
Type: Behavioral
What it is:
Represent an operation to be
performed on the elements of an
object structure. Lets you define a
new operation without changing
the classes of the elements on
which it operates.
+templateMethod()
#subMethod()
AbstractClass
+subMethod()
ConcreteClass
Template Method
Type: Behavioral
What it is:
Define the skeleton of an algorithm in an
operation, deferring some steps to subclasses.
Lets subclasses redefine certain steps
of an algorithm without changing the
algorithm's structure.
+execute()
ConcreteStrategyB
+execute()
«interface»
Strategy
Context
+execute()
ConcreteStrategyA
Strategy
Type: Behavioral
What it is:
Define a family of algorithms,
encapsulate each one, and make them
interchangeable. Lets the algorithm vary
independently from
clients that use it.
+handle()
ConcreteState1
+handle()
«interface»
State
+request()
Context
+handle()
ConcreteState2
State
Type: Behavioral
What it is:
Allow an object to alter its behavior when
its internal state changes. The object will
appear to change its class.
-subjectState
ConcreteSubject
+update()
-observerState
ConcreteObserver
+update()
«interface»
Observer
notifies
observes
+attach(in o : Observer)
+detach(in o : Observer)
+notify()
«interface»
Subject
Observer
Type: Behavioral
What it is:
Define a one-to-many dependency between
objects so that when one object changes
state, all its dependents are notified and
updated automatically.
-state
Memento
+setMemento(in m : Memento)
+createMemento()
-state
Originator
Caretaker
Memento
Type: Behavioral
What it is:
Without violating encapsulation, capture
and externalize an object's internal state
so that the object can be restored to this
state later.
Abstract Factory
C
Adapter
S
Bridge
S
Builder
C
Chain of Responsibility
B
Command
B
Composite
S
Decorator
S
Facade
S
Factory Method
C
Flyweight
S
Interpreter
B
Iterator
B
Mediator
B
Memento
B
Prototype
C
Proxy
S
Observer
B
Singleton
C
State
B
Strategy
B
Template Method
B
Visitor
B
Chain of Responsibility
+handleRequest()
«interface»
Handler
+handleRequest()
ConcreteHandler1
+handleRequest()
ConcreteHandler2
Client
successor
Type: Behavioral
What it is:
Avoid coupling the sender of a request to
its receiver by giving more than one object
a chance to handle the request. Chain the
receiving objects and pass the request
along the chain until an object handles it.
+execute()
ConcreteCommand
Client
Receiver
Invoker Command
Type: Behavioral
What it is:
Encapsulate a request as an object,
thereby letting you parameterize clients
with different requests, queue or log
requests, and support undoable operations.
+interpret()
«interface»
AbstractExpression
+interpret() : Context
TerminalExpression
Client
Context
+interpret() : Context
NonterminalExpression
Interpreter
Type: Behavioral
What it is:
Given a language, define a representation
for its grammar along with an interpreter
that uses the representation to interpret
sentences in the language.
+createIterator()
«interface»
Aggregate
+createIterator() : Context
ConcreteAggregate
+next()
«interface»
Iterator
+next() : Context
ConcreteIterator
Iterator
Type: Behavioral
What it is:
Provide a way to access the elements of
an aggregate object sequentially without
exposing its underlying representation.
Client
Mediator
ConcreteMediator ConcreteColleague
«interface»
Colleague
informs
updates
Mediator
Type: Behavioral
What it is:
Define an object that encapsulates how a
set of objects interact. Promotes loose
coupling by keeping objects from referring
to each other explicitly and it lets you vary
their interactions independently.
Copyright © 2007 Jason S. McDonald
http://www.McDonaldLand.info
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Design Patterns: Elements of
Reusable Object-Oriented Software. Reading, Massachusetts: Addison Wesley Longman, Inc..
+execute()
Command
Facade
Complex system
Adapter
Type: Structural
What it is:
Convert the interface of a class into
another interface clients expect. Lets
classes work together that couldn't
otherwise because of incompatible
interfaces.
+adaptedOperation()
Adaptee
+operation()
«interface»
Adapter
+operation()
-adaptee
ConcreteAdapter
Client
+operationImpl()
«interface»
Implementor
+operation()
Abstraction
+operationImpl()
ConcreteImplementorA
+operationImpl()
ConcreteImplementorB
Bridge
Type: Structural
What it is:
Decouple an abstraction from its
implementation so that the two can vary
independently.
+operation()
Leaf +operation()
+add(in c : Composite)
+remove(in c : Composite)
+getChild(in i : int)
Composite
+operation()
+add(in c : Composite)
+remove(in c : Composite)
+getChild(in i : int)
«interface»
Component
children
Composite
Type: Structural
What it is:
Compose objects into tree structures to
represent part-whole hierarchies. Lets
clients treat individual objects and
compositions of objects uniformly.
+operation()
ConcreteComponent
+operation()
Decorator
+operation()
«interface»
Component
+operation()
+addedBehavior()
-addedState
ConcreteDecorator
Decorator
Type: Structural
What it is:
Attach additional responsibilities to an
object dynamically. Provide a flexible
alternative to sub-classing for extending
functionality.
Facade
Type: Structural
What it is:
Provide a unified interface to a set of
interfaces in a subsystem. Defines a high-
level interface that makes the subsystem
easier to use.
Flyweight
Type: Structural
What it is:
Use sharing to support large numbers of
fine grained objects efficiently.
+request()
RealSubject
+request()
Proxy
+request()
«interface»
Subject
Client
represents
Proxy
Type: Structural
What it is:
Provide a surrogate or placeholder for
another object to control access to it.
+static instance()
+SingletonOperation()
-static uniqueInstance
-singletonData
Singleton
Singleton
Type: Creational
What it is:
Ensure a class only has one instance and
provide a global point of access to it.
+clone()
ConcretePrototype2
+clone()
«interface»
Prototype
Client
+clone()
ConcretePrototype1
Prototype
Type: Creational
What it is:
Specify the kinds of objects to create
using a prototypical instance, and
create new objects by copying this
prototype.
«interface»
Product
ConcreteProduct
+factoryMethod()
ConcreteCreator
+factoryMethod()
+anOperation()
Creator
Factory Method
Type: Creational
What it is:
Define an interface for creating an
object, but let subclasses decide which
class to instantiate. Lets a class defer
instantiation to subclasses.
+buildPart()
«interface»
Builder
+buildPart()
+getResult()
ConcreteBuilder
+construct()
Director
Builder
Type: Creational
What it is:
Separate the construction of a
complex object from its representing
so that the same construction
process can create different
representations.
«interface»
AbstractProduct
ConcreteProduct
+createProductA()
+createProductB()
«interface»
AbstractFactory
+createProductA()
+createProductB()
ConcreteFactory
Client
Abstract Factory
Type: Creational
What it is:
Provides an interface for creating
families of related or dependent
objects without specifying their
concrete class.
+operation(in extrinsicState)
-intrinsicState
ConcreteFlyweight
+operation(in extrinsicState)
-allState
UnsharedConcreteFlyweight
+operation(in extrinsicState)
«interface»
Flyweight
+getFlyweight(in key)
FlyweightFactory
Client
Copyright © 2007 Jason S. McDonald
http://www.McDonaldLand.info
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Design Patterns: Elements of
Reusable Object-Oriented Software. Reading, Massachusetts: Addison Wesley Longman, Inc..

More Related Content

Similar to DesignPatternScard.pdf

1204csharp
1204csharp1204csharp
1204csharp
g_hemanth17
 
JavaScript
JavaScriptJavaScript
JavaScript
Bharti Gupta
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
DayNightGaMiNg
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
janet736113
 
Validate your entities with symfony validator and entity validation api
Validate your entities with symfony validator and entity validation apiValidate your entities with symfony validator and entity validation api
Validate your entities with symfony validator and entity validation api
Raffaele Chiocca
 
Il 09 T3 William Spreitzer
Il 09 T3 William SpreitzerIl 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
wspreitzer
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
Peter R. Egli
 
GWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTGWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXT
niloc132
 
Reactive clean architecture
Reactive clean architectureReactive clean architecture
Reactive clean architecture
Viktor Nyblom
 
PoEAA by Example
PoEAA by ExamplePoEAA by Example
PoEAA by Example
Paulo Gandra de Sousa
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
Paulo Gandra de Sousa
 
Devoxx 2012 (v2)
Devoxx 2012 (v2)Devoxx 2012 (v2)
Devoxx 2012 (v2)
Jerome Dochez
 
Design Pattern Cheatsheet
Design Pattern CheatsheetDesign Pattern Cheatsheet
Design Pattern Cheatsheet
Rachanee Saengkrajai
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
DayNightGaMiNg
 
2.dynamic
2.dynamic2.dynamic
2.dynamic
bashcode
 
Interface
InterfaceInterface
Interface
Ashwini Yadav
 
Intake 37 linq3
Intake 37 linq3Intake 37 linq3
Intake 37 linq3
Mahmoud Ouf
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
Jonas Follesø
 
PDC Video on C# 4.0 Futures
PDC Video on C# 4.0 FuturesPDC Video on C# 4.0 Futures
PDC Video on C# 4.0 Futures
nithinmohantk
 
Whats New In C# 4 0 - NetPonto
Whats New In C# 4 0 - NetPontoWhats New In C# 4 0 - NetPonto
Whats New In C# 4 0 - NetPonto
Paulo Morgado
 

Similar to DesignPatternScard.pdf (20)

1204csharp
1204csharp1204csharp
1204csharp
 
JavaScript
JavaScriptJavaScript
JavaScript
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
 
Validate your entities with symfony validator and entity validation api
Validate your entities with symfony validator and entity validation apiValidate your entities with symfony validator and entity validation api
Validate your entities with symfony validator and entity validation api
 
Il 09 T3 William Spreitzer
Il 09 T3 William SpreitzerIl 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
 
GWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXTGWT.create 2013: Introduction to GXT
GWT.create 2013: Introduction to GXT
 
Reactive clean architecture
Reactive clean architectureReactive clean architecture
Reactive clean architecture
 
PoEAA by Example
PoEAA by ExamplePoEAA by Example
PoEAA by Example
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 
Devoxx 2012 (v2)
Devoxx 2012 (v2)Devoxx 2012 (v2)
Devoxx 2012 (v2)
 
Design Pattern Cheatsheet
Design Pattern CheatsheetDesign Pattern Cheatsheet
Design Pattern Cheatsheet
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
2.dynamic
2.dynamic2.dynamic
2.dynamic
 
Interface
InterfaceInterface
Interface
 
Intake 37 linq3
Intake 37 linq3Intake 37 linq3
Intake 37 linq3
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
PDC Video on C# 4.0 Futures
PDC Video on C# 4.0 FuturesPDC Video on C# 4.0 Futures
PDC Video on C# 4.0 Futures
 
Whats New In C# 4 0 - NetPonto
Whats New In C# 4 0 - NetPontoWhats New In C# 4 0 - NetPonto
Whats New In C# 4 0 - NetPonto
 

More from JTLai1

Ample_Guitar 使用手册 教程详解.pdf
Ample_Guitar 使用手册 教程详解.pdfAmple_Guitar 使用手册 教程详解.pdf
Ample_Guitar 使用手册 教程详解.pdf
JTLai1
 
Ample Bass 使用手册 教程详解.pdf
Ample Bass 使用手册 教程详解.pdfAmple Bass 使用手册 教程详解.pdf
Ample Bass 使用手册 教程详解.pdf
JTLai1
 
ギターと孤独と蒼い惑星g1.pdf
ギターと孤独と蒼い惑星g1.pdfギターと孤独と蒼い惑星g1.pdf
ギターと孤独と蒼い惑星g1.pdf
JTLai1
 
ギターと孤独と蒼い惑星.pdf
ギターと孤独と蒼い惑星.pdfギターと孤独と蒼い惑星.pdf
ギターと孤独と蒼い惑星.pdf
JTLai1
 
J04_08.PDF
J04_08.PDFJ04_08.PDF
J04_08.PDF
JTLai1
 
J04_06.PDF
J04_06.PDFJ04_06.PDF
J04_06.PDF
JTLai1
 
J04_05.PDF
J04_05.PDFJ04_05.PDF
J04_05.PDF
JTLai1
 
J04_04.PDF
J04_04.PDFJ04_04.PDF
J04_04.PDF
JTLai1
 
J04_3.PDF
J04_3.PDFJ04_3.PDF
J04_3.PDF
JTLai1
 
J04_2.PDF
J04_2.PDFJ04_2.PDF
J04_2.PDF
JTLai1
 
J04_1.PDF
J04_1.PDFJ04_1.PDF
J04_1.PDF
JTLai1
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdf
JTLai1
 
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
JTLai1
 
12_2022年台灣早期投資專題-人工智慧.pdf
12_2022年台灣早期投資專題-人工智慧.pdf12_2022年台灣早期投資專題-人工智慧.pdf
12_2022年台灣早期投資專題-人工智慧.pdf
JTLai1
 
13_2022年台灣早期投資專題-智慧製造.pdf
13_2022年台灣早期投資專題-智慧製造.pdf13_2022年台灣早期投資專題-智慧製造.pdf
13_2022年台灣早期投資專題-智慧製造.pdf
JTLai1
 
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
JTLai1
 
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
JTLai1
 
2023年投資展望會-電子產業.pdf
2023年投資展望會-電子產業.pdf2023年投資展望會-電子產業.pdf
2023年投資展望會-電子產業.pdf
JTLai1
 
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
JTLai1
 
20221128-晶圓代工_精華版.pdf
20221128-晶圓代工_精華版.pdf20221128-晶圓代工_精華版.pdf
20221128-晶圓代工_精華版.pdf
JTLai1
 

More from JTLai1 (20)

Ample_Guitar 使用手册 教程详解.pdf
Ample_Guitar 使用手册 教程详解.pdfAmple_Guitar 使用手册 教程详解.pdf
Ample_Guitar 使用手册 教程详解.pdf
 
Ample Bass 使用手册 教程详解.pdf
Ample Bass 使用手册 教程详解.pdfAmple Bass 使用手册 教程详解.pdf
Ample Bass 使用手册 教程详解.pdf
 
ギターと孤独と蒼い惑星g1.pdf
ギターと孤独と蒼い惑星g1.pdfギターと孤独と蒼い惑星g1.pdf
ギターと孤独と蒼い惑星g1.pdf
 
ギターと孤独と蒼い惑星.pdf
ギターと孤独と蒼い惑星.pdfギターと孤独と蒼い惑星.pdf
ギターと孤独と蒼い惑星.pdf
 
J04_08.PDF
J04_08.PDFJ04_08.PDF
J04_08.PDF
 
J04_06.PDF
J04_06.PDFJ04_06.PDF
J04_06.PDF
 
J04_05.PDF
J04_05.PDFJ04_05.PDF
J04_05.PDF
 
J04_04.PDF
J04_04.PDFJ04_04.PDF
J04_04.PDF
 
J04_3.PDF
J04_3.PDFJ04_3.PDF
J04_3.PDF
 
J04_2.PDF
J04_2.PDFJ04_2.PDF
J04_2.PDF
 
J04_1.PDF
J04_1.PDFJ04_1.PDF
J04_1.PDF
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdf
 
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
2022 Oct. Healthcare Industry Update from PeopleSearch.pdf
 
12_2022年台灣早期投資專題-人工智慧.pdf
12_2022年台灣早期投資專題-人工智慧.pdf12_2022年台灣早期投資專題-人工智慧.pdf
12_2022年台灣早期投資專題-人工智慧.pdf
 
13_2022年台灣早期投資專題-智慧製造.pdf
13_2022年台灣早期投資專題-智慧製造.pdf13_2022年台灣早期投資專題-智慧製造.pdf
13_2022年台灣早期投資專題-智慧製造.pdf
 
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
5G產業趨勢暨B5G關鍵議題分析_會員下載精華版.pdf
 
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
 
2023年投資展望會-電子產業.pdf
2023年投資展望會-電子產業.pdf2023年投資展望會-電子產業.pdf
2023年投資展望會-電子產業.pdf
 
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
楊金龍1111129簡報-「臺灣的通膨與貨幣政策:回顧與展望」.pdf
 
20221128-晶圓代工_精華版.pdf
20221128-晶圓代工_精華版.pdf20221128-晶圓代工_精華版.pdf
20221128-晶圓代工_精華版.pdf
 

Recently uploaded

Does teamwork really matter? Looking beyond the job posting to understand lab...
Does teamwork really matter? Looking beyond the job posting to understand lab...Does teamwork really matter? Looking beyond the job posting to understand lab...
Does teamwork really matter? Looking beyond the job posting to understand lab...
Labour Market Information Council | Conseil de l’information sur le marché du travail
 
Using Online job postings and survey data to understand labour market trends
Using Online job postings and survey data to understand labour market trendsUsing Online job postings and survey data to understand labour market trends
Using Online job postings and survey data to understand labour market trends
Labour Market Information Council | Conseil de l’information sur le marché du travail
 
5 Tips for Creating Standard Financial Reports
5 Tips for Creating Standard Financial Reports5 Tips for Creating Standard Financial Reports
5 Tips for Creating Standard Financial Reports
EasyReports
 
Seminar: Gender Board Diversity through Ownership Networks
Seminar: Gender Board Diversity through Ownership NetworksSeminar: Gender Board Diversity through Ownership Networks
Seminar: Gender Board Diversity through Ownership Networks
GRAPE
 
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
5spllj1l
 
Independent Study - College of Wooster Research (2023-2024)
Independent Study - College of Wooster Research (2023-2024)Independent Study - College of Wooster Research (2023-2024)
Independent Study - College of Wooster Research (2023-2024)
AntoniaOwensDetwiler
 
Detailed power point presentation on compound interest and how it is calculated
Detailed power point presentation on compound interest  and how it is calculatedDetailed power point presentation on compound interest  and how it is calculated
Detailed power point presentation on compound interest and how it is calculated
KishanChaudhary23
 
What's a worker’s market? Job quality and labour market tightness
What's a worker’s market? Job quality and labour market tightnessWhat's a worker’s market? Job quality and labour market tightness
What's a worker’s market? Job quality and labour market tightness
Labour Market Information Council | Conseil de l’information sur le marché du travail
 
Instant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School DesignsInstant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School Designs
egoetzinger
 
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
nimaruinazawa258
 
Money20/20 and EU Networking Event of 20/24!
Money20/20 and EU Networking Event of 20/24!Money20/20 and EU Networking Event of 20/24!
Money20/20 and EU Networking Event of 20/24!
FinTech Belgium
 
How Does CRISIL Evaluate Lenders in India for Credit Ratings
How Does CRISIL Evaluate Lenders in India for Credit RatingsHow Does CRISIL Evaluate Lenders in India for Credit Ratings
How Does CRISIL Evaluate Lenders in India for Credit Ratings
Shaheen Kumar
 
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
otogas
 
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdfTumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
Henry Tapper
 
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
AntoniaOwensDetwiler
 
The Impact of GST Payments on Loan Approvals
The Impact of GST Payments on Loan ApprovalsThe Impact of GST Payments on Loan Approvals
The Impact of GST Payments on Loan Approvals
Vighnesh Shashtri
 
Instant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School SpiritInstant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School Spirit
egoetzinger
 
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
mayaclinic18
 
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
sameer shah
 
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
obyzuk
 

Recently uploaded (20)

Does teamwork really matter? Looking beyond the job posting to understand lab...
Does teamwork really matter? Looking beyond the job posting to understand lab...Does teamwork really matter? Looking beyond the job posting to understand lab...
Does teamwork really matter? Looking beyond the job posting to understand lab...
 
Using Online job postings and survey data to understand labour market trends
Using Online job postings and survey data to understand labour market trendsUsing Online job postings and survey data to understand labour market trends
Using Online job postings and survey data to understand labour market trends
 
5 Tips for Creating Standard Financial Reports
5 Tips for Creating Standard Financial Reports5 Tips for Creating Standard Financial Reports
5 Tips for Creating Standard Financial Reports
 
Seminar: Gender Board Diversity through Ownership Networks
Seminar: Gender Board Diversity through Ownership NetworksSeminar: Gender Board Diversity through Ownership Networks
Seminar: Gender Board Diversity through Ownership Networks
 
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
在线办理(GU毕业证书)美国贡萨加大学毕业证学历证书一模一样
 
Independent Study - College of Wooster Research (2023-2024)
Independent Study - College of Wooster Research (2023-2024)Independent Study - College of Wooster Research (2023-2024)
Independent Study - College of Wooster Research (2023-2024)
 
Detailed power point presentation on compound interest and how it is calculated
Detailed power point presentation on compound interest  and how it is calculatedDetailed power point presentation on compound interest  and how it is calculated
Detailed power point presentation on compound interest and how it is calculated
 
What's a worker’s market? Job quality and labour market tightness
What's a worker’s market? Job quality and labour market tightnessWhat's a worker’s market? Job quality and labour market tightness
What's a worker’s market? Job quality and labour market tightness
 
Instant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School DesignsInstant Issue Debit Cards - School Designs
Instant Issue Debit Cards - School Designs
 
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
Tdasx: In-Depth Analysis of Cryptocurrency Giveaway Scams and Security Strate...
 
Money20/20 and EU Networking Event of 20/24!
Money20/20 and EU Networking Event of 20/24!Money20/20 and EU Networking Event of 20/24!
Money20/20 and EU Networking Event of 20/24!
 
How Does CRISIL Evaluate Lenders in India for Credit Ratings
How Does CRISIL Evaluate Lenders in India for Credit RatingsHow Does CRISIL Evaluate Lenders in India for Credit Ratings
How Does CRISIL Evaluate Lenders in India for Credit Ratings
 
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
一比一原版(UCL毕业证)伦敦大学|学院毕业证如何办理
 
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdfTumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
Tumelo-deep-dive-into-pass-through-voting-Feb23 (1).pdf
 
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
Independent Study - College of Wooster Research (2023-2024) FDI, Culture, Glo...
 
The Impact of GST Payments on Loan Approvals
The Impact of GST Payments on Loan ApprovalsThe Impact of GST Payments on Loan Approvals
The Impact of GST Payments on Loan Approvals
 
Instant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School SpiritInstant Issue Debit Cards - High School Spirit
Instant Issue Debit Cards - High School Spirit
 
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
^%$Zone1:+971)581248768’][* Legit & Safe #Abortion #Pills #For #Sale In #Duba...
 
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
STREETONOMICS: Exploring the Uncharted Territories of Informal Markets throug...
 
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
一比一原版(GWU,GW毕业证)加利福尼亚大学|尔湾分校毕业证如何办理
 

DesignPatternScard.pdf

  • 1. +visitElementA(in a : ConcreteElementA) +visitElementB(in b : ConcreteElementB) «interface» Visitor +visitElementA(in a : ConcreteElementA) +visitElementB(in b : ConcreteElementB) ConcreteVisitor +accept(in v : Visitor) «interface» Element +accept(in v : Visitor) ConcreteElementA +accept(in v : Visitor) ConcreteElementB Client Visitor Type: Behavioral What it is: Represent an operation to be performed on the elements of an object structure. Lets you define a new operation without changing the classes of the elements on which it operates. +templateMethod() #subMethod() AbstractClass +subMethod() ConcreteClass Template Method Type: Behavioral What it is: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure. +execute() ConcreteStrategyB +execute() «interface» Strategy Context +execute() ConcreteStrategyA Strategy Type: Behavioral What it is: Define a family of algorithms, encapsulate each one, and make them interchangeable. Lets the algorithm vary independently from clients that use it. +handle() ConcreteState1 +handle() «interface» State +request() Context +handle() ConcreteState2 State Type: Behavioral What it is: Allow an object to alter its behavior when its internal state changes. The object will appear to change its class. -subjectState ConcreteSubject +update() -observerState ConcreteObserver +update() «interface» Observer notifies observes +attach(in o : Observer) +detach(in o : Observer) +notify() «interface» Subject Observer Type: Behavioral What it is: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. -state Memento +setMemento(in m : Memento) +createMemento() -state Originator Caretaker Memento Type: Behavioral What it is: Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later. Abstract Factory C Adapter S Bridge S Builder C Chain of Responsibility B Command B Composite S Decorator S Facade S Factory Method C Flyweight S Interpreter B Iterator B Mediator B Memento B Prototype C Proxy S Observer B Singleton C State B Strategy B Template Method B Visitor B Chain of Responsibility +handleRequest() «interface» Handler +handleRequest() ConcreteHandler1 +handleRequest() ConcreteHandler2 Client successor Type: Behavioral What it is: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. +execute() ConcreteCommand Client Receiver Invoker Command Type: Behavioral What it is: Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. +interpret() «interface» AbstractExpression +interpret() : Context TerminalExpression Client Context +interpret() : Context NonterminalExpression Interpreter Type: Behavioral What it is: Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language. +createIterator() «interface» Aggregate +createIterator() : Context ConcreteAggregate +next() «interface» Iterator +next() : Context ConcreteIterator Iterator Type: Behavioral What it is: Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. Client Mediator ConcreteMediator ConcreteColleague «interface» Colleague informs updates Mediator Type: Behavioral What it is: Define an object that encapsulates how a set of objects interact. Promotes loose coupling by keeping objects from referring to each other explicitly and it lets you vary their interactions independently. Copyright © 2007 Jason S. McDonald http://www.McDonaldLand.info Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Reading, Massachusetts: Addison Wesley Longman, Inc.. +execute() Command
  • 2. Facade Complex system Adapter Type: Structural What it is: Convert the interface of a class into another interface clients expect. Lets classes work together that couldn't otherwise because of incompatible interfaces. +adaptedOperation() Adaptee +operation() «interface» Adapter +operation() -adaptee ConcreteAdapter Client +operationImpl() «interface» Implementor +operation() Abstraction +operationImpl() ConcreteImplementorA +operationImpl() ConcreteImplementorB Bridge Type: Structural What it is: Decouple an abstraction from its implementation so that the two can vary independently. +operation() Leaf +operation() +add(in c : Composite) +remove(in c : Composite) +getChild(in i : int) Composite +operation() +add(in c : Composite) +remove(in c : Composite) +getChild(in i : int) «interface» Component children Composite Type: Structural What it is: Compose objects into tree structures to represent part-whole hierarchies. Lets clients treat individual objects and compositions of objects uniformly. +operation() ConcreteComponent +operation() Decorator +operation() «interface» Component +operation() +addedBehavior() -addedState ConcreteDecorator Decorator Type: Structural What it is: Attach additional responsibilities to an object dynamically. Provide a flexible alternative to sub-classing for extending functionality. Facade Type: Structural What it is: Provide a unified interface to a set of interfaces in a subsystem. Defines a high- level interface that makes the subsystem easier to use. Flyweight Type: Structural What it is: Use sharing to support large numbers of fine grained objects efficiently. +request() RealSubject +request() Proxy +request() «interface» Subject Client represents Proxy Type: Structural What it is: Provide a surrogate or placeholder for another object to control access to it. +static instance() +SingletonOperation() -static uniqueInstance -singletonData Singleton Singleton Type: Creational What it is: Ensure a class only has one instance and provide a global point of access to it. +clone() ConcretePrototype2 +clone() «interface» Prototype Client +clone() ConcretePrototype1 Prototype Type: Creational What it is: Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. «interface» Product ConcreteProduct +factoryMethod() ConcreteCreator +factoryMethod() +anOperation() Creator Factory Method Type: Creational What it is: Define an interface for creating an object, but let subclasses decide which class to instantiate. Lets a class defer instantiation to subclasses. +buildPart() «interface» Builder +buildPart() +getResult() ConcreteBuilder +construct() Director Builder Type: Creational What it is: Separate the construction of a complex object from its representing so that the same construction process can create different representations. «interface» AbstractProduct ConcreteProduct +createProductA() +createProductB() «interface» AbstractFactory +createProductA() +createProductB() ConcreteFactory Client Abstract Factory Type: Creational What it is: Provides an interface for creating families of related or dependent objects without specifying their concrete class. +operation(in extrinsicState) -intrinsicState ConcreteFlyweight +operation(in extrinsicState) -allState UnsharedConcreteFlyweight +operation(in extrinsicState) «interface» Flyweight +getFlyweight(in key) FlyweightFactory Client Copyright © 2007 Jason S. McDonald http://www.McDonaldLand.info Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Reading, Massachusetts: Addison Wesley Longman, Inc..