设计模式问答(4)-Java开发Java经验技巧

设计模式问答(4)-Java开发Java经验技巧

ID:43875812

大小:560.06 KB

页数:20页

时间:2019-10-16

设计模式问答(4)-Java开发Java经验技巧_第1页
设计模式问答(4)-Java开发Java经验技巧_第2页
设计模式问答(4)-Java开发Java经验技巧_第3页
设计模式问答(4)-Java开发Java经验技巧_第4页
设计模式问答(4)-Java开发Java经验技巧_第5页
资源描述:

《设计模式问答(4)-Java开发Java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、设计模式问答(4)-编程开发技术设计模式问答(4)木文由ImportNew・shcnggordon翻译自codeprojecto欢迎加入翻译小组。转载请见文末要求。这篇文章是设计模式问答(第1篇)、(第2篇)和(第3篇)的后续。在这篇文章屮,我们将介绍桥接模式、组合模式、外观模式、职责链模式、代理模式以及模板模式。如果你还没有阅读我之前的文章,请从下面开始:1.设计模式问答(1):工程模式,抽彖工程模式,构造器模式,原型模式,单例模式和命令模式2.设计模式问答(2):解释器模式,迭代器模式,调停者模式,备忘录模式和观察者模式3

2、.设计模式问答(3):状态模式,策略模式,访问者模式,适配器模式和享元模式你能解释桥接模式吗?桥接模式能够将实现部分和抽象部分解耦。通过它,实现发生变化并不会影响到抽象,反之亦然。看看下图。开关是抽象部分,而电子设备是实现部分。开关可以连接到任何一个电了设备,因此开关是一个抽象的概念,而设备是实现部分。Implementation图:抽象和实现让我们尝试对这个开关和设备进行编码。第一部分,我们把实现和抽象分成两个不同的类。图“实现”展示了我们是如何实现接口"IEquipment"的"Start()"和“StopO”方法的。我们

3、实现了两个设备,一个是冰箱,另一个是电灯。publicinterfaceIEquipmentvoidStart();voidStop();}InheritanceclassclsR已:Efig已匚&匸or:IEquipmentpublicvoidStart()Console•WriteLine(rrStartCompressorFr);Console•WriteLine(rpStartIceCoolingrr);}publicvoidStop()classcisBulb:IEquipment-publicvoidStart()

4、Console•WriteLine("1Console•WriteLine(}publicvoidStop()图:实现Console.WriteLine(rrStopIceCoolingrr);Console.WriteLine(rrStopCompressorrr);Console■WriteLine「無}}%-、j..第二部分是抽象。我们例了中的开关是抽象。它有一个“SctEquipmcnt”方法,用来设置对彖「5”方法调用设备的“Start”方法,而“Off”调用“Stop”。interfaceISwitch<1{Abs

5、tractionvoidOn();interfacevoidOff();<1}classClsswitch:ISwitch{privateIEquiprnent.objEquipment;AggregatedEquipmentobjectreferencepublicvoidsetEquipMent(IEquiprnentEquipment)objEquipment=Equipment;publicvoidOn()<-{objEquipment.Start();}publicvoidOff()«{objEquipment.St

6、op();Implementboththeinterface汁亠、、・.■尺•图:抽象最终,我们看看客户端代码。你可以看到我们分别创建了实现对象和抽象对象。我们可以独立地使用它们。cisBulbobjBulb=newcisBulb();objSobjS^objSwitchesetEquipMent((objBulbT?)witch.On():[witch•O

7、ff();CreatetheimplementationobjectsAbstractionobjectsImplementationisseperatefromabstractionobjSuitch.setEquipMent(objRefrig);objSwitch.On();objSwitch.Off();Cunsole,ReadLine();图:桥接的客户端代码你能解释组合模式吗?G0F定义:一种简单-和组合对象的树形数据结构很多时候,对象以树形结构的方式组织,开发者必须理解叶子节点和分支节点的不同含义。这会使代码更加

8、复朵,且容易导致错误。如下例是一个简单对象的树形结构,其屮customer是根对象,它有*多个address对象,而每个address对象引用了多个phone对象。图:通用程序现在让我们假设你需要插入一个完整的对象树。示例代码会是下面所示的样子。代码遍历所冇的customer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。