设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)

设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)

ID:12369857

大小:289.00 KB

页数:29页

时间:2018-07-16

设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)_第1页
设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)_第2页
设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)_第3页
设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)_第4页
设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)_第5页
资源描述:

《设计模式综合实现含源码(策略模式 适配器模式 装饰者模式 抽象工厂模式 迭代器和组合模式 观察者模式)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件构造第6次实验实验报告班级:学号:姓名:2016年4月27日一.设计(由于类较多,很难清晰地展示,类图将作为附件与该文档同时上交。)本次实验旨在合理地将一群设计模式结合起来以解决一般性问题,其中包括了策略模式、适配器模式、装饰者模式、抽象工厂模式、迭代器和组合模式以及观察者模式。大致的思路如下:①鹅想要伪装成鸭子——适配器模式;②鸭子学家想要统计叫声的次数——装饰者模式。通过把鸭子包装给装饰者对象,让鸭子具有新行为,即统计叫的次数;③为了确保所有的鸭子都添加了装饰者——27抽象工厂模式。我们通过抽象工厂模式来创建鸭子,以确保质量达到要求;①为了便于管理,将鸭子集结成鸭群

2、——迭代器和组合模式。这其实是一个树状结构,利用迭代器进行遍历使得管理更加方便;②当鸭子叫时,鸭子学家想要被告知——观察者模式。实现这个功能的过程中同样用到了迭代器,学家不仅可以当某个鸭子的观察者,甚至可以当一整群鸭子的观察者。③这个鸭子游戏还没有考虑飞行、游泳等行为,并且想要动态修改鸭子的行为——策略模式;④“鸡”也想伪装成鸭子——适配器模式;⑤想要统计鸭子飞行、游泳的次数——观察者模式;⑥让鸭子飞行时通知——观察者模式。(鸭子游戏的拓展过程中出现的重要的具体问题请见“三”。)二.实现1.QuackBehaviorpackageQuackable;publicinterf

3、aceQuackBehavior{voidquack();}2.HonkpackageQuackable;importElse.Observer;//呱呱叫行为之一publicclassHonkimplementsQuackBehavior{publicvoidquack(){System.out.println("---Honk---");}27}3.KwakpackageQuackable;importElse.Observer;//呱呱叫行为之一publicclassKwakimplementsQuackBehavior{publicvoidquack(){Syste

4、m.out.println("---Kwak---");}}4.QuackpackageQuackable;importElse.Observer;//呱呱叫行为之一publicclassQuackimplementsQuackBehavior{publicvoidquack(){System.out.println("---Quack---");}}5.SqueakpackageQuackable;importElse.Observer;//呱呱叫行为之一publicclassSqueakimplementsQuackBehavior{publicvoidquack(){

5、System.out.println("---Squeak---");}}6.WowpackageQuackable;publicclassWowimplementsQuackBehavior{publicvoidquack(){System.out.println("---Wow---");}27}7.FlyablepackageFlyable;importElse.*;publicinterfaceFlyable{voidfly();}8.FlyNoWaypackageFlyable;publicclassFlyNoWayimplementsFlyable{public

6、voidfly(){System.out.println("[Flynoway]");}}9.FlyWithWingspackageFlyable;publicclassFlyWithWingsimplementsFlyable{publicvoidfly(){System.out.println("[Flywithwings]");}}10.SwimablepackageSwimable;publicinterfaceSwimable{voidswim();}11.SwimInSomeWaypackageSwimable;publicclassSwimInSomeWayi

7、mplementsSwimable{publicvoidswim(){System.out.println("Swiminsomeway.");}}2712.SwimNoWaypackageSwimable;publicclassSwimNoWayimplementsSwimable{publicvoidswim(){System.out.println("Swimnoway.");}}13.DuckpackageKindsOfDucks;importElse.Observer;importFlyable.Flya

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

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

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