在某绘图软件中提供了多种大小不同的画笔(Pen)
在某绘图软件中提供了多种大小不同的画笔(Pen),并且可以给画笔指定不同的颜色,某设计人员针对画笔的结构设计了如图2-11所示的初始类图。
通过仔细分析,设计人员发现该类图存在非常严重的问题,如果增加一种新的大小的笔或者增加一种新的颜色,需要增加很多子类,例如增加一种绿色,则对应每一种大小的笔都需要增加一支绿色笔,系统中类的个数急剧增加。试依据依赖倒转原则和合成复用原则对该设计方案进行重构,使得增加新的大小的笔和增加新的颜色都较为方便。
简单工厂模式
使用简单工厂模式设计一个可以创建不同几何形状(如圆形、方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个Unsupported Exception异常。
二、类图(Class Diagram)
三、代码(Code)
Shape.java
CircleShape.java