就一个类而言,应该仅有一个引起它变化的原因。
有两个不同应用程序使用Rectangle类。
一个是有关计算几何学方面的,Rectangle类会在几何形状计算方面为它提供帮助,它从来不会在屏幕上绘制矩形。
一个是应用程序,是有关图形绘制方面的,它可能会进行一些计算几何学方面的工作,但是它肯定会在屏幕上绘制矩形。
这个设计就违反了单一职责原则。Rectangle类具有两个职责。
第一个职责提供了一个矩形几何形状的数学模型。
第二个职责是把矩形在一个图形用户界面上绘制出来。
下面是分离的职责:
把这两个职责分离到两个完全不同的类中。把Rectangle类中进行计算的部分移动到GemetryRectangle类中。矩形绘制方式的改变不会对ComputationGeometryApplication造成影响。