23种设计模式_UML_类图及对应示例代码

上传人:ni****g 文档编号:560942976 上传时间:2023-05-28 格式:DOC 页数:45 大小:160.50KB
返回 下载 相关 举报
23种设计模式_UML_类图及对应示例代码_第1页
第1页 / 共45页
23种设计模式_UML_类图及对应示例代码_第2页
第2页 / 共45页
23种设计模式_UML_类图及对应示例代码_第3页
第3页 / 共45页
23种设计模式_UML_类图及对应示例代码_第4页
第4页 / 共45页
23种设计模式_UML_类图及对应示例代码_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《23种设计模式_UML_类图及对应示例代码》由会员分享,可在线阅读,更多相关《23种设计模式_UML_类图及对应示例代码(45页珍藏版)》请在金锄头文库上搜索。

1、. 23种设计模式 UML 类图及对应例如代码 (一)收藏 Abstract Factory:提供一个创立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 工厂模式:客户类和工厂类分开。消费者任何时候需要*种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创立及如何向客户端提供。usingSystem;namespaceDoFactory.GangOfFour.Abstract.Structural/MainAppstartupclassforStructural/AbstractFactoryDesignPattern./

2、classMainApp/Entrypointintoconsoleapplication./publicstaticvoidMain()/Abstractfactory*1AbstractFactoryfactory1=newConcreteFactory1();Clientclient1=newClient(factory1);client1.Run();/Abstractfactory*2AbstractFactoryfactory2=newConcreteFactory2();Clientclient2=newClient(factory2);client2.Run();/Waitfo

3、ruserinputConsole.Read();/AbstractFactoryabstractclassAbstractFactorypublicabstractAbstractProductACreateProductA();publicabstractAbstractProductBCreateProductB();/ConcreteFactory1classConcreteFactory1:AbstractFactorypublicoverrideAbstractProductACreateProductA()returnnewProductA1();publicoverrideAb

4、stractProductBCreateProductB()returnnewProductB1();/ConcreteFactory2classConcreteFactory2:AbstractFactorypublicoverrideAbstractProductACreateProductA()returnnewProductA2();publicoverrideAbstractProductBCreateProductB()returnnewProductB2();/AbstractProductAabstractclassAbstractProductA/AbstractProduc

5、tBabstractclassAbstractProductBpublicabstractvoidInteract(AbstractProductAa);/ProductA1classProductA1:AbstractProductA/ProductB1classProductB1:AbstractProductBpublicoverridevoidInteract(AbstractProductAa)Console.WriteLine(this.GetType().Name+interactswith+a.GetType().Name);/ProductA2classProductA2:A

6、bstractProductA/ProductB2classProductB2:AbstractProductBpublicoverridevoidInteract(AbstractProductAa)Console.WriteLine(this.GetType().Name+interactswith+a.GetType().Name);/Client-theinteractionenvironmentoftheproductsclassClientprivateAbstractProductAAbstractProductA;privateAbstractProductBAbstractP

7、roductB;/ConstructorpublicClient(AbstractFactoryfactory)AbstractProductB=factory.CreateProductB();AbstractProductA=factory.CreateProductA();publicvoidRun()AbstractProductB.Interact(AbstractProductA); Adapter:将一个类的接口转换成客户希望的另一个接口,使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口

8、原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个适宜的实例给客户端。usingSystem;namespaceDoFactory.GangOfFour.Adapter.Structural/MainAppstartupclassforStructural/AdapterDesignPattern./classMainApp/Entrypointintoconsoleapplication./staticvoidMain()/CreateadapterandplacearequestTargettarget=newAdapter();target.Request();/W

9、aitforuserConsole.Read();/TargetclassTargetpublicvirtualvoidRequest()Console.WriteLine(CalledTargetRequest();/AdapterclassAdapter:TargetprivateAdapteeadaptee=newAdaptee();publicoverridevoidRequest()/Possiblydosomeotherwork/andthencallSpecificRequestadaptee.SpecificRequest();/AdapteeclassAdapteepubli

10、cvoidSpecificRequest()Console.WriteLine(CalledSpecificRequest(); Bridge:将抽象局部与它的实现局部别离,使之可以独立变化。桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。usingSystem;namespaceDoFactory.GangOfFour.Bridge.Structural/MainAppstartupclassforStructural/BridgeDesignPattern./classMainApp/Entrypointintoconsoleapplication./staticvoidMain()Abstractionab

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号