发布时间 : 星期日 文章软件设计与体系结构练习题 - 图文更新完毕开始阅读
三、 设计题
(一) chapter 2创建型设计模式
1. 一个房屋销售查询系统,以便查询不同类型的房屋的介绍、价格和地址等。为简单起见,只
考虑两种类型的房屋:别墅(House)和公寓(Condo),并假设每种房屋类型都包含:豪华(Super)、中等(Medium)两个等级。要求能够查看房屋信息和房屋价格,请使用创建型设计模式解决该问题,画出设计类图。 答:参考图 1
图 1 抽象工厂模式参考图
2. 假设有一个web托管公司,该公司在Windows和UNIX平台上托管服务。该Web托管公司
在这两种平台上提供三种不同类型的托管包:基本(Basic)、高级(Senior)和更高级(Super)。使用“抽象工厂”模式设计一个应用,查询该托管公司提供的不同类型的托管包功能,画出设计类图。
答:参考错误!未找到引用源。
<
图 2 抽象工厂模式解决win、Unix服务创建问题
3. 生成器模式可以用于描述肯德基KFC如何创建套餐:套餐是一个复杂对象,它一般包含主食
(如汉堡、牛肉饭等)、配餐(如新奥尔良烤翅、香辣鸡翅、吮指原味鸡等)和饮料(如果汁、可乐等)等三个组成部分,不同的套餐有不同的组成部分,而KFC的服务员可以根据顾客的要求,一步一步装配这些组成部分,构造一份完整的套餐,然后返回给顾客。套餐假设目前有如下几个套餐:午餐套餐(Lunch Suit)、晚餐套餐(Supper Suit)、豪华套餐(Luxury Suit)。请用生成器模式设计该应用,画出其设计类图。 答:参见图 3
Client+main()<
4. 下图所示设计类图是关于游戏软件的设计。在该设计中,SlowGameFactory类负责创建
SlowFighter对象与SlowMonster对象,并且将创建完的对象以其超类类型返回给ClientGUI对象。然后,ClientGUI对象将操纵SlowFighter对象与SlowMonster对象,使得它们互相打斗。
(1) 上述设计使用了什么设计模式?
抽象工厂
(2) 请在以上设计中添加SuperFighter和SuperMonster,SuperFighter与SuperMonster是对应的,请绘制新的设计类图。
修正一下该答案 5. 某公司要设计一个房屋选购系统,系统内的房屋分为三种类型:经济型(Economic
House)、普通型(Normal House)与豪华型(Luxury House)。不同房型的区别体现在面积大小(Area)以及卧室(Bedroom)、卫生间(Bathroom)、车库(Garage)、花园(Garden)、游泳池(Swimming Pool)的数量上。请用生成器模式设计该选购系统,画出设计类图。