软件设计模式与体系结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计模式与体系结构

————————————————————————————————作者:————————————————————————————————日期:

计算机科学与技术学院

《软件设计模式与体系结构》

课程作业(一)

(2016/2017学年第二学期)

学生姓名:雷君

学生专业:软件工程

学生班级:142601

学生学号: 2

指导教师:王飞

目录

实验一.............................................. 1工厂方法模式——汽车保险 (1)

抽象工厂方法模式——房屋信息 (3)

实验二6ﻩ

组合模式——空军指挥系统 (6)

适配器模式——客户信息验证................................................ 错误!未定义书签。实验三. (11)

桥接模式——几何立体体积ﻩ错误!未定义书签。

访问者模式——计算机部件销售软件................................................................ 14 实验四. (17)

策略模式——整数排序1ﻩ7

状态模式——交通信号灯ﻩ19

实验五............................................. 21 M VC软件体系结构.. (21)

实验一

工厂方法模式——汽车保险

【实验内容】

在例2.3的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要与其他的类一样能执行相应的功能。

【添加代码】

1、添加LuxuryCarInsurance类:

public classLuxuryCarInsurance implements AutoInsurance

private String description;

public String getInsuranceDescription()

{

ﻩdescription =" LuxuryCarInsurance:\n\nLuxuryCarInsurance coverage pays

for medical bills" +

" lost wages, rehabilitation,treatmentand/or" +

ﻩ" funeral costs for anyone injured or killed" +ﻩ" byyour car. Such coverage will alsopay for" +

" pain and suffering damages when a third "+

"partysuccessfully sues. ";

return description;

}

}

2、添加LuxuryCarPolicyProducer类:

public class LuxuryCarPolicyProducer implements PolicyProducer

public AutoInsurance getPolicyObj()//Fruitfactory()

{

return new LuxuryCarInsurance();

}

}

3、添加GUI:

(1)public static final String LUXURYCAR ="LuxuryCar Insur ance";

(2)cmbInsuranceType.addItem(LUXURYCAR);

(3)if (type.equals(LUXURYCAR)){

ﻩpp=new LuxuryCarPolicyProducer();

}

【实验结果】

【实验小结】

使用工厂方法访问并且初始化合适的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句判定何时选取哪个类。其次,工厂方法实现了一些特殊的某个类的机制,尤其是层次结构不同的类需要不同的初始化方法的时候。

抽象工厂方法模式——房屋信息

【实验内容】

在例2.4中设计并且实现了豪华(Super)和中等(Medum)别墅(House)和公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。

【添加代码】

1、添加SemiDetacher类:

public interface SemiDetacher

{

public String getSemiDetacherInfo();

ﻩpublicString getSemiDetacherFeatures();

}

2、添加SuperSemiDetacher类:

public classSuperSemiDetacherimplementsSemiDetacher

{

privateString name;

public SuperSemiDetacher(String cName)

ﻩ{

ﻩname =cName;

ﻩ}

public StringgetSemiDetacherInfo()

ﻩ{

return"superSemiDetacher.html";

ﻩ}

public String getSemiDetacherFeatures()

{

ﻩreturn"SuperSemiDetacher";

}

3、添加MediumSemiDetacher类:

public classMediumSemiDetacher implementsSemiDetacher

{

相关文档
最新文档