10个经典设计模式定义及图解.DOC

上传人:天*** 文档编号:971759 上传时间:2018-11-10 格式:DOC 页数:9 大小:161.50KB
下载 相关 举报
10个经典设计模式定义及图解.DOC_第1页
第1页 / 共9页
10个经典设计模式定义及图解.DOC_第2页
第2页 / 共9页
10个经典设计模式定义及图解.DOC_第3页
第3页 / 共9页
10个经典设计模式定义及图解.DOC_第4页
第4页 / 共9页
10个经典设计模式定义及图解.DOC_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、第 1 页(共 9 页)10 个经典设计模式定义及图解1、 The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.DecoyDuckDecoyDuck()display()FlyBehaviorfly()QuackBehaviorquack() DuckDuck()setFlyBehavior

2、()stQuackehavior()disply()performFly()rfrQuack()swim() flyBehaviorquackBehaviorFakeQuack FlyNoWayfly()FlyRocketPowerdfly()FlyWithingsfly()MalrdDuckMalrdDuck()disply()MuteQuackQuackquack() RedHeadDuckRedHeadDuck()isply() RuberDuckRuberDuck()display()Squeakquack()2、The Observer Pattern defines a one-t

3、o-many relationship between objects so that when one object changes state, all of its dependents are notified and updated automatically.0.*SubjectregisterObserver()removeObserver()notifyObserver()Observerupdate()Each subject canhave many observersupdate() will be called whenthe Subjects state change

4、s.These methods will be called When to register as observers , remove themselves from Being observers, or update allthe observers whenever state changes.For example:第 2 页(共 9 页)SubjectregisterObserver()removeObserver()notifyObserver()Observerupdate()0.*CurentConditions Displayupdate()display()Weathe

5、rDataregisterObserver()removeObserver()notifyObserver() 1DisplayElementdisplay()Statistics Displayupdate()display()Forecast Displayupdate()display()3、The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for exte

6、nding functionality.ConcreteComponentAConcreteDecoratorA ConcreteDecoratorBDecoratorComponentConcreteComponentBFor example:第 3 页(共 9 页)HouseBlendHouseBlend()cost()DarkRoastDarkRoast()cost() SteamedMilkSteamedMilk()getDescription()cost()MochaMocha()getDescription()cost()SoySoy()getDescription()cost()

7、EspresoEspreso()cost()DecafDecaf()cost()Beveragedescription : StringgetDescription()cost() CondimentsgetDescription()#baseWhipWhip()getDescription()cost()4、The Factory Method Pattern defines an interface for creating an object, but lets subclasses decide which class to instantiate. Factory Method le

8、ts a class defer instantiation to subclasses.Product CreatorfactoryMethod()otherOperation()ConcreteCreatorfactoryMethod()ConcreteProductFor example:第 4 页(共 9 页)NYFactorycreatePiza() ChicagoFactorycreatePiza()NYStyleChesePizaNYStylePeperoniPizaNYStyleClamPizaNYStyleVegiePizaChicagoStyleCheesePizaChic

9、goStylePeperoniPizaChicagoStyleClamPizaChicagoStyleVegiePizaPizaStoreorderPiza() FactorycreatePiza()5、 The Singleton Pattern ensures a class has only one instance, and provides a global point of access to it.Singletonstatic uniqueInstancestatic getInstance() Holds our one and onlyinstance of Singlet

10、on.You can conveniently accessthe method anywhere?6、The Command Pattern encapsulates a request as an object, thereby letting you parameterize other objects with different requests, queue or log requests, and support undoable operations.第 5 页(共 9 页)InvokersetComand() Comandexecute()undo()ConcreteComa

11、ndexecute()undo()Receiveraction()public void execute()receiver.action();For example:7、The Adapter Pattern converts the interface of a class into another interface the clients expect. Adapter lets classes work together that couldnt otherwise because of incompatible interfaces.第 6 页(共 9 页)Client Targe

12、trequest()Adapterrequest() AdaptespecificRequest()For example:8、The Facade Pattern provides a unified interface to a set of interfaces in a subsystem. Faade defines a higher-level interface that makes the subsystem easier to use.第 7 页(共 9 页)Client FacadeFor example:ClientScrenTheaterLightsPopcornPop

13、erHomeTheaterFacadeTunerCdPlayerAmplifierDvdPlayerProjector9、The Template Method Pattern defines the skeleton of a algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithms structure.第 8 页(共 9 页)primitiveOperation1();primitiveOperation2();For example:10、The State Pattern allows an object to alter its behavior when its internal state changes.第 9 页(共 9 页)state.handle();For example:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。