设计模式之结构型模式.docx





《设计模式之结构型模式.docx》由会员分享,可在线阅读,更多相关《设计模式之结构型模式.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南华人学计算机学院软件设计模式作业(20XX秋季学期)学 号:班 级:姓 名:任课老师:作业内容:结构型模式日期: 202X年11月12日public class ZC32Client public static void main(String args)ZC32Index index=newZC32FunctionAdapter();/(ZC32Index)XMLUtil.getBean(); index.productioninfo();index.shopCart();I2. 5运行结果Problems rz Javadoc Declaration Console ZC32Client
2、 (5) Java Application D:Pr商品信息管理类! ! !商品信息进行管理! ! ! 开始推荐推荐相关商品! ! !购物车信息管理类! ! ! 购物车商品进行编辑! ! ! 开始推荐推荐相关商品! !2, 6心得体会对适配者模式有了一定程度的了解:将目标类和适配者类解耦,通过引入一个适 配器类来重用现有的适配者类,而无须修改原有代码。增加了类的透明性和复用 性,将具体的实现封装在适配者类中,对于客户端类来是透明的,而且提高了适 配者的复用性。灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更 换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开 闭原那
3、么”。3、题目3-装饰者模式3.1作业题目这是一个关于相亲的故事。某家有女初长成,七大姑八大姨欲帮助寻得佳婿,后在各种群、 圈、网站,收集了各种男人的资料。这里需要一个应用生成收集过来的男人的描述,如:是 否有车、是否有房、是否有存款、是否有好品质。然后这个应用了装饰者模式的应用诞生了, 动态添加男人的描述,最后得到男人的综述。3. 2所用模式结构视图super.operationO; addedB ehaviorQ;3.3 本实例类图实例实现代码1.41 抽象构件类ZC32Man (男人)package装饰者模式;public interface ZC32Man public void is
4、single();1.42 具体构件类ZC32Single (单身)package装饰者模式;public class ZC32Single implements ZC32Man( public void issingle() System.out.printin(“该男子是适龄单身狗! ! ”); )1.43 抽象装饰类ZC32Describe (描述)package装饰者模式;public class ZC32Describe implements ZC32Man( private ZC32Man man;public void ishave(ZC32Man man) this.man=m
5、an;public void issingle() man.issingle();)3.431具体装饰类ZC32Car (有车类)package装饰者模式;public class ZC32Car extends ZC32Describepublic ZC32Car(ZC32Man man) super();)public void ishave() System.out.printin(“有车! ! ! ”); )3.432具体装饰类ZC32Room (有房类)package装饰者模式;public class ZC32Room extends ZC32Describe( public ZC
6、32Room(ZC32Man man) super();)public void ishave() System.out.printin(“有房! ! ! N);)3.433具体装饰类ZC32Moliey (有存款类)package装饰者模式;public class ZC32Money extends ZC32Describepublic ZC32Money(ZC32Man man) super();public void ishave() System.out.printin(有存款! ! !);)3.434具体装饰类ZC32character (有品格类)package装饰者模式;pub
7、lic class ZC32Character extends ZC32Describepublic ZC32Character(ZC32Man man) super();Ipublic void ishave() System.out.printin(有存款! ! !);)1.44 客户端测试类ZC32Clientpackage装饰者模式; public class ZC32Client public static void main(String args) ZC32Man Bob;Bob =new ZC32Single();Bob.issingle();System.out.printI
8、n(ZC32Car c=new ZC32Car(Bob); c.ishave();ZC32Room d=new ZC32Room(Bob); d.ishave();ZC32Money e=new ZC32Money(Bob); e.ishave();ZC32Character f=new ZC32Character(Bob); f.ishave();)5运行结果ZC32Client (6) (202011-14 20:47:12)日ementCovera. Covered Inst.T J - 4 、MB. c.-w匕 Problems Javadoc 匾 Declaration Consol
9、e 区 MoocTe ZC32Client (6) Java Application D:Proqram FilesJa该男子是适龄单身狗! !车房存存 有有有有6心得体会通过这次实验,深刻了解到了装饰者模式的内涵,能够有效的对一个对象进行装饰而不必修改原来的代码4、题目4-组合模式4.1作业题目用组合模式对购物网站的商品进管理,绘制选择模式的结构图,并绘制该案例的类图,并编 写代码演示结果,运行结果样例显示如右图所示。1侬11. J, 一 *4男士服装B外套羽绒服棉服毛曜外盲i羊绒皮衣/皮草:,甘织衫/毛衣夫克1衬衫POU影:他牛仔裤1卫衣ItitBR西潴西展西服营养杼色再装大码里装中老年服
10、饰配件t臼;遮阳公膻帚/皮示,1费铸围巾/指扁也巾帽子1手套领扣/油1W转去,领带/领结茸他.11 J 一 fUS ZQ -1-1 ,当当网 留装+服装+男装-衬衣-夹克+女装-裙子一套装4.2所用模式结构视图for(Com ponent c)child .operation。; )4.3本实例类图ZC32ClientV4. 4实例实现代码441抽象构件类ZC32Clothingpackage组合模式;public abstract class ZC32Clothing protected String name;public ZC32Clothing(String name) this.na
11、me=name;)public abstract void add(ZC32Clothing c);public abstract void remove(ZC32Clothing c); public abstract void display(int depth);)4.42 容器构建类ZC32SexClothing (男女服装类)package组合模式;import java.util.ArrayList;import java.util.List;public class ZC32SexCloting extends ZC32Clothing private List list=new
12、 ArrayList();public ZC32SexCloting(String name) super(name);)public void add(ZC32Clothing c) list.add(c);public void remove(ZC32Clothing c) list.remove(c);public void display(int depth) for(int i=l;i=depth;+i)System.out.print(;System.out.printIn(name);for(ZC32Clothing c:list”.display(depth+4);4.43 叶
13、子构建类ZC32Type (具体服装类)package组合模式;public class ZC32Type extends ZC32Clothingpublic ZC32Type(String name) super(name);)public void add(ZC32Clothing c) 1、题目桥接模式作业题目电子商务网站常有这样的功能:发送消息通知,比方订货发货通知等,从业务上看,消 息分为普通消息、加急消息和特急消息多种不同的消息类型,其业务处理是不一样的,比方 加急消息是在消息上添加加急标记,而特急消息是添加了加急标记外,还会做一条催促的记 录,多久不完成会继续催促。从发送消息的
14、手段上看,又有系统内消息、手机短信消息、邮 件等。请使用合适的设计模式进行设计,绘制所选择模式的结构图,并绘制该案例的类图, 并编写代码实现并进行演示。1.1 所用模式结构视图本实例类图System . out . print In (不能添加);public void remove(ZC32Clothing c) System .out .print In (不能删除);public void display(int depth) for(int i=l;i=depth;+i)System.out.print(;System.out.printIn(name);4.44客户端测试类ZC32C
15、lientpackage组合模式;public class ZC32Client public static void main(String args) ZC32Clothing c=new ZC32SexCloting(服装”);ZC32Clothing man=new ZC32SexCloting(“男装”);ZC32Clothing woman=new ZC32SexCloting(“女装”);ZC32Clothing manl=new ZC32Type(衬衣”);ZC32Clothing man2=new ZC32Type(“夹克”);ZC32Clothing womanl=new
16、ZC32Type(“裙子”);ZC32Clothing woman2=new ZC32Type(套装”); c.add(man);c.add(woman);man.add(manl);man.add(man2);woman.add(womanl);woman . add(woman2);c.display(l);4.5运行结果Coverage 应ZC32Client (7) (2020-11-15 9:25:13)ElementI? Problems Javadoc 团 Declaratic ZC32Client (7) Java Ap-服装男装衬衣荚竟女装裙子套装6心得体会通过这次实验,对组
17、合模式有了一定的了解:我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单 元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构 解耦。5、题目5-享元模式作业题目在天猫商城里存在着成天上万的网店,但是天猫所提供的网站模板是一样的,存在许多天猫 网店使用同一个网店模板的情况,如果每一个网店都用一个网店对象来表示,因为网店数量 巨大,我们需求很多的网店对象来表示,但是,采用同一套网店模板的网店除了里面所展示 的内容不一样或者使用权限不同以外,网店的风格样式几乎一致,除了一些定制化的功能, 比方log。等,请使用享元模式来模拟此问题。4. 2所用模式结构视图ZC32
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 结构

限制150内