设计模式其实很简单[精品]
刘径舟 张玉华 等
笔记
§ 第1章 设计模式的定义及设计原则
>>设计模式是一种思想,也是一种技术,其思想上的成分要占绝大多数。一种设计模式就是一种解决方案,通过使用这种解决方案,开发者可以快速地完成某项工作;一种设计模式也是一个指路者,指明了开发的方向,引导程序员到达正确的目标。
>>单一职责原则
>>单一职责原则的定义比较简单——对于一个类,应该只有一个引起它变化的原因。
>>当我们进行软件开发的时候,经常会给已经设计的一个类新增各种各样的功能。例如,一个负责接收用户发来的信息的类,可能会被设计为还可以访问数据库将用户发来的信息进行记录等等。这样做就意味着将来数据持久层的变化会引起这个类的变化,而另一方面,如果用户发送的信息的结构改变了,这个类也要跟着作出相应的改变,也就是说,引起这个类发生变化的原因有两个,这就违背了单一职责原则。
>>为什么类应该满足单一职责原则呢?首先,易于维护和高度的可复用性是面向对象开发的比较突出的两个优点。
>>如果一个类的职责过于庞大,那么维护起来肯定也就更加麻烦,同时这个类的可复用性也会随之降低,而尽量多地创造复用代码是面向对象的基本原则之一,
>> 单一职责原则能否扩展
>>在软件工程中,工程师都需要避免修改了一个功能从而影响到其他的功能出现问题。而避免这种情况就需要遵守单一职责原则。
>>职责扩散就是因为一些特定的原因,职责A被分化为粒度更细的职责A1和A2。
>>我们需要注意,在职责扩散到我们无法控制的程度之前,进行代码重构
>>有一种原则是:需要足够简单的逻辑,才可以在代码级别上违反单一职责原则;需要类中方法数量足够少,才可以在方法级别上违反单一职责原则。
>>遵循单一职责原则的好处有:降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单;提高类的可读性,提高系统的可维护性。
>>其实面向对象的软件设计几乎就是一个发现职责并且将其互相分离的过程。至于如何做到单一职责原则,其实也比较简单,如果能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就需要我们将这些职责进行分离。
网友评论