软件设计模式与体系结构.doc

上传人:re****.1 文档编号:558309749 上传时间:2023-09-04 格式:DOC 页数:35 大小:293.04KB
返回 下载 相关 举报
软件设计模式与体系结构.doc_第1页
第1页 / 共35页
软件设计模式与体系结构.doc_第2页
第2页 / 共35页
软件设计模式与体系结构.doc_第3页
第3页 / 共35页
软件设计模式与体系结构.doc_第4页
第4页 / 共35页
软件设计模式与体系结构.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《软件设计模式与体系结构.doc》由会员分享,可在线阅读,更多相关《软件设计模式与体系结构.doc(35页珍藏版)》请在金锄头文库上搜索。

1、 计算机科学与技术学院软件设计模式与体系结构课程作业(一) (2023/2023学年 第二学期)学生姓名: 雷 君学生专业: 软件工程学生班级: 142601学生学号: 指导教师: 王 飞 目 录实验一1工厂方法模式汽车保险1抽象工厂方法模式房屋信息3实验二6组合模式空军指挥系统6适配器模式客户信息验证8实验三11桥接模式几何立体体积11访问者模式计算机部件销售软件14实验四17策略模式整数排序17状态模式交通信号灯19实验五21MVC软件体系结构21实验一工厂方法模式汽车保险【实验内容】 在例2.3的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要

2、与其他的类同样能执行相应的功能。【添加代码】1、 添加LuxuryCarInsurance类: public class LuxuryCarInsurance implements AutoInsurance private String description; public String getInsuranceDescription() description = LuxuryCarInsurance: nnLuxuryCarInsurance coverage pays for medical bills + lost wages, rehabilitation, treatment

3、and/or + funeral costs for anyone injured or killed + by your car. Such coverage will also pay for + pain and suffering damages when a third + party successfully sues. ; return description; 2、 添加LuxuryCarPolicyProducer类: public class LuxuryCarPolicyProducer implements PolicyProducer public AutoInsur

4、ance getPolicyObj() /Fruit factory() return new LuxuryCarInsurance(); 3、 添加GUI: (1)public static final String LUXURYCAR = LuxuryCar Insurance; (2)cmbInsuranceType.addItem(LUXURYCAR); (3)if (type.equals(LUXURYCAR) pp=new LuxuryCarPolicyProducer(); 【实验结果】 【实验小结】使用工厂方法访问并且初始化合适的类的对象,简化了应用程序,应用程序自身不再具有大

5、量的条件语句鉴定何时选取哪个类。另一方面,工厂方法实现了一些特殊的某个类的机制,特别是层次结构不同的类需要不同的初始化方法的时候。抽象工厂方法模式房屋信息【实验内容】 在例2.4中设计并且实现了豪华(Super)和中档(Medum)别墅(House)和公寓(Condo)的查询。规定在该设计的基础上,增长一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。【添加代码】1、添加SemiDetacher类: public interface SemiDetacher public String getSemiDetacherInfo(); public String

6、getSemiDetacherFeatures(); 2、 添加SuperSemiDetacher类: public class SuperSemiDetacher implements SemiDetacher private String name; public SuperSemiDetacher(String cName) name = cName; public String getSemiDetacherInfo() return superSemiDetacher.html; public String getSemiDetacherFeatures() return Super

7、 SemiDetacher ; 3、添加MediumSemiDetacher类: public class MediumSemiDetacher implements SemiDetacher private String name; public MediumSemiDetacher(String cName) name = cName; public String getSemiDetacherInfo() return MediumSemiDetacher.html; public String getSemiDetacherFeatures()return Medium SemiDet

8、acher ; 4、 添加BuildingFactory: public abstract SemiDetacher getSemiDetacher();5、添加MediumBuildingFactory: public SemiDetacher getSemiDetacher() return new MediumSemiDetacher(Medium SemiDetacher); 6、 添加SuperBuildingFactory: public SemiDetacher getSemiDetacher() return new SuperSemiDetacher(Super SemiDe

9、tacher); 7、添加GUI: (1)public static final String SEMIDETACHER = SemiDetacher; (2)cmbHouseType.addItem(SEMIDETACHER); (3)if (type.equals(AbstractFactoryGUI.SEMIDETACHER) SemiDetacher cd = bf.getSemiDetacher(); String fileNm = cd.getSemiDetacherInfo(); putHouseInfoToScreen(fileNm); 【实验结果】 【实验小结】 当客户对象要

10、从一个相关的产品组中创建一个对象,而没有必要知道到底要创建哪个对象时,可以使用抽象工厂模式。假如不使用抽象工厂模式,创建对象的条件语句将会出现在客户程序的许多地方,程序的克维护性差。抽象工厂模式帮助程序员避免了以上所述的反复的、复杂的条件语句,提供必要的创建对象的接口。实验二组合模式空军指挥系统【实验内容】 在例3.3的设计中,添加一个空军大队(Wing)类,该类与Squadron、Group类是平行的,因此应当继承了AirUnit类。该类的写法与Squadron或者Group类是类似的,所不同的是一个Wing有216中类型的飞机。【添加代码】1、 添加Wing类: public class

11、Wing extends AirUnit public static final String FEATURES = A Wing with 216 aircrafts; Airforce fighters = new Airforce162; Airforce bombers = new Airforce18; Airforce transporters= new Airforce18; Airforce eAircrafts = new Airforce18; public Wing() for(int k=0;k162;k+) / need 162 fighters for(int k=0;k18;k+) / need 18 bombers for(int k=0;k18;k+) / need 18 transporters for(int k=0;k18;k+) / need 18 eAirplanes public String getDescription() return FEATURES; public String fight() return super.fight();

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

当前位置:首页 > 商业/管理/HR > 商业合同/协议

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