软件设计模式与体系结构 课后练习1
习题如下:
解:第一题
- 画出该模式的设计类图:
如图1所示:
图1 设计类图
2. 解释为什么自己的设计符合开闭原则?
答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。
解第二题
1.为什么要使用策略模式?
答:因为此软件有多种优惠收费包,不同的收费包有不同的计算方式,所以也就是说有多个条件,每个条件都要进行判断,相当于每个if条件都可以理解为一个策略,此正符合策略模式定义(即把算法的责任和算法本身分割开来,委派给不同的对象管理,最终实现解决多重if判断问题。)
2.画出该模式的设计类图:
如图2所示:
图2 设计类图
3.解释为什么自己的设计符合开闭原则?
答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。