1、实验四17策略模式整数排序17状态模式交通信号灯19实验五21MVC软件体系结构21实验一工厂方法模式汽车保险【实验内容】 在例2.3的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要与其他的类一样能执行相应的功能。【添加代码】1、 添加LuxuryCarInsurance类: public class LuxuryCarInsurance implements AutoInsurance private String description; public String getInsuranceDescription() description =
2、 LuxuryCarInsurance: nnLuxuryCarInsurance coverage pays for medical bills + lost wages, rehabilitation, treatment 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、 添
3、加LuxuryCarPolicyProducer类: public class LuxuryCarPolicyProducer implements PolicyProducer public AutoInsurance getPolicyObj() /Fruit factory() return new LuxuryCarInsurance();3、 添加GUI: (1)public static final String LUXURYCAR = LuxuryCar Insurance (2)cmbInsuranceType.addItem(LUXURYCAR); (3)if (type.e
4、quals(LUXURYCAR) pp=new LuxuryCarPolicyProducer(); 【实验结果】 【实验小结】使用工厂方法访问并且初始化合适的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句判定何时选取哪个类。其次,工厂方法实现了一些特殊的某个类的机制,尤其是层次结构不同的类需要不同的初始化方法的时候。抽象工厂方法模式房屋信息 在例2.4中设计并且实现了豪华(Super)和中等(Medum)别墅(House)和公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。1、添加SemiDe
5、tacher类: public interface SemiDetacher public String getSemiDetacherInfo(); public String getSemiDetacherFeatures(); 2、 添加SuperSemiDetacher类: public class SuperSemiDetacher implements SemiDetacher private String name; public SuperSemiDetacher(String cName) name = cName; public String getSemiDetacher
6、Info()return superSemiDetacher.html public String getSemiDetacherFeatures() Super SemiDetacher 3、添加MediumSemiDetacher类: public class MediumSemiDetacher implements SemiDetacher private String name; public MediumSemiDetacher(String cName) public String getSemiDetacherInfo()MediumSemiDetacher.html publ
7、ic String getSemiDetacherFeatures()Medium SemiDetacher 4、 添加BuildingFactory: public abstract SemiDetacher getSemiDetacher();5、添加MediumBuildingFactory: public SemiDetacher getSemiDetacher() return new MediumSemiDetacher(Medium SemiDetacher);6、 添加SuperBuildingFactory: public SemiDetacher getSemiDetach
8、er() return new SuperSemiDetacher(Super SemiDetacher7、添加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(); putHouse
9、InfoToScreen(fileNm); 当客户对象要从一个相关的产品组中创建一个对象,而没有必要知道到底要创建哪个对象时,可以使用抽象工厂模式。如果不使用抽象工厂模式,创建对象的条件语句将会出现在客户程序的许多地方,程序的克维护性差。抽象工厂模式帮助程序员避免了以上所述的重复的、复杂的条件语句,提供必要的创建对象的接口。实验二组合模式空军指挥系统 在例3.3的设计中,添加一个空军大队(Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirUnit类。该类的写法与Squadron或者Group类是类似的,所不同的是一个Wing有216中类型的飞机。1、 添加Wing
10、类: public class 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 18; / need 18 bombers / need 18 transporters / need 18 eAirplanes public String getDescription() return FEATURES; public String fight() return super.fight();2、 添加GUI: (1)private String AirForceUnit = SQUADRON, GROUPWING; (2)add(1, 6, airCheckBox13
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1