软件设计模式与体系结构 课后练习1

软件设计模式与体系结构 课后练习1

习题如下:

     软件设计模式与体系结构 课后练习1

软件设计模式与体系结构 课后练习1

解:第一题

  1. 画出该模式的设计类图:

 

如图1所示:

软件设计模式与体系结构 课后练习1

                           图1 设计类图

2.  解释为什么自己的设计符合开闭原则?

答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。

软件设计模式与体系结构 课后练习1

软件设计模式与体系结构 课后练习1

解第二题

 

1.为什么要使用策略模式?

答:因为此软件有多种优惠收费包,不同的收费包有不同的计算方式,所以也就是说有多个条件,每个条件都要进行判断,相当于每个if条件都可以理解为一个策略,此正符合策略模式定义(即把算法的责任和算法本身分割开来,委派给不同的对象管理,最终实现解决多重if判断问题。)

2.画出该模式的设计类图:

如图2所示:

软件设计模式与体系结构 课后练习1

                                                                                  图2 设计类图

3.解释为什么自己的设计符合开闭原则?

答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。