1、面向对象设计原则。
1>在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是
单一职责原则
开闭原则
里氏代换原则
依赖注入原则
接口分离原则
迪米特原则
组合/聚合复用原则
2>这些原则是面向对象设计的基石,坚持这些原则是提升面向对象设计质量的重要保障。
2、开闭原则。
1>定义:
OCP:Open for extention, Closed for modification Principle,即对扩展开放,对修改关闭原则
2>该原则的思想是:可以通过扩展来满足变化,而不需要修改代码,或者说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展
3、开闭原则实现 :
1>实现开闭原则的关键是抽象。
2>定义一个抽象层,只规定功能而不提供实现,实现通过定义具体类来完成。
3>当需求变化时,不是通过修改抽象层来完成,而是通过定义抽象层的新实现完成,即通过扩展来完成。
4>通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,不需修改,从而满足“对修改关闭”。
5>从抽象类导出的具体类可以改变系统的行为,从而满足“对扩展开放” 。
4、开闭原则好处 :
1>通过扩展已有软件系统,可提供新的行为,以满足对软件的新需求,提高了软件系统的适应性和灵活性
2>已有的软件模块,特别是最重要的抽象层模块不能再修改,提高了软件系统的一定的稳定性和延续性
3>这样的设计同时也满足了可复用性与可维护性;
5、开闭原则小结:
1>实现开闭原则的关键是抽象。
2>抽象层相对稳定,不需修改,需求变化后通过重新定义抽象层的新实现来完成。
3>即使无法百分之百的做到开闭原则,但朝这个方向努力,可以显著改善一个系统的结构。
4>对系统每个部分都肆意地进行抽象也不是一个好主意,应该仅仅对程序中需求频繁变化部分进行抽象。
5>拒绝不成熟的抽象和抽象本身一样重要。
6、单一职能原则。
1> SRP:Single Responsibility Principle;
2>系统中的每一个类都应该只有一个职责,而所有类所关注的就是自身职责的完成。
3> 职责是指为“变化的原因” 。
如果能想到多个原因去改变一个类,这个类就具有多个职责。
并不是单一功能原则,并不是每个类只能有一个方法,而是单一“变化的原因”原则。
7、单一职能原则好处。
1>单一职责原则的意思就是经常说的“高内聚、低耦合”。
2>如果一个类有多个职责,这些职责就耦合在了一起,当一个职责发生变化时,可能会影响其它的职责。
3>多个职责耦合在一起,会影响复用性。
可能只需要复用该类的某一个职责,但这个职责跟其它职责耦合在了一起,很难分离出来。
8、单一职能原则小结。
1>单一职能原则是所有原则中最简单的、最基本的一个。
2>可以提高类的内聚性,有助于充分发挥面向对象编程语言的优势。
3>要注意过犹不及。
在没有需求变化征兆的的情况下,不要使用单一职责原则对类进行过细拆分。
9、里氏代换原则。
1>LSP:Liskov Substitution Principle,Liskov是该原则的提出者。
2>该原则的思想是:在任何父类出现的地方都可以用它的子类来代换,而不影响功能。
3>里氏代换原则是对开闭原则的扩展。
采用开闭原则必然用到抽象和多态,而这离不开继承。
里氏代换原则就是对如何良好继承提出了衡量依据。
10、里氏代换原则总结:
1>里氏代换原则是对开闭原则的扩展。
2>开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据。
1>在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是
单一职责原则
开闭原则
里氏代换原则
依赖注入原则
接口分离原则
迪米特原则
组合/聚合复用原则
2>这些原则是面向对象设计的基石,坚持这些原则是提升面向对象设计质量的重要保障。
2、开闭原则。
1>定义:
OCP:Open for extention, Closed for modification Principle,即对扩展开放,对修改关闭原则
2>该原则的思想是:可以通过扩展来满足变化,而不需要修改代码,或者说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展
3、开闭原则实现 :
1>实现开闭原则的关键是抽象。
2>定义一个抽象层,只规定功能而不提供实现,实现通过定义具体类来完成。
3>当需求变化时,不是通过修改抽象层来完成,而是通过定义抽象层的新实现完成,即通过扩展来完成。
4>通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,不需修改,从而满足“对修改关闭”。
5>从抽象类导出的具体类可以改变系统的行为,从而满足“对扩展开放” 。
4、开闭原则好处 :
1>通过扩展已有软件系统,可提供新的行为,以满足对软件的新需求,提高了软件系统的适应性和灵活性
2>已有的软件模块,特别是最重要的抽象层模块不能再修改,提高了软件系统的一定的稳定性和延续性
3>这样的设计同时也满足了可复用性与可维护性;
5、开闭原则小结:
1>实现开闭原则的关键是抽象。
2>抽象层相对稳定,不需修改,需求变化后通过重新定义抽象层的新实现来完成。
3>即使无法百分之百的做到开闭原则,但朝这个方向努力,可以显著改善一个系统的结构。
4>对系统每个部分都肆意地进行抽象也不是一个好主意,应该仅仅对程序中需求频繁变化部分进行抽象。
5>拒绝不成熟的抽象和抽象本身一样重要。
6、单一职能原则。
1> SRP:Single Responsibility Principle;
2>系统中的每一个类都应该只有一个职责,而所有类所关注的就是自身职责的完成。
3> 职责是指为“变化的原因” 。
如果能想到多个原因去改变一个类,这个类就具有多个职责。
并不是单一功能原则,并不是每个类只能有一个方法,而是单一“变化的原因”原则。
7、单一职能原则好处。
1>单一职责原则的意思就是经常说的“高内聚、低耦合”。
2>如果一个类有多个职责,这些职责就耦合在了一起,当一个职责发生变化时,可能会影响其它的职责。
3>多个职责耦合在一起,会影响复用性。
可能只需要复用该类的某一个职责,但这个职责跟其它职责耦合在了一起,很难分离出来。
8、单一职能原则小结。
1>单一职能原则是所有原则中最简单的、最基本的一个。
2>可以提高类的内聚性,有助于充分发挥面向对象编程语言的优势。
3>要注意过犹不及。
在没有需求变化征兆的的情况下,不要使用单一职责原则对类进行过细拆分。
9、里氏代换原则。
1>LSP:Liskov Substitution Principle,Liskov是该原则的提出者。
2>该原则的思想是:在任何父类出现的地方都可以用它的子类来代换,而不影响功能。
3>里氏代换原则是对开闭原则的扩展。
采用开闭原则必然用到抽象和多态,而这离不开继承。
里氏代换原则就是对如何良好继承提出了衡量依据。
10、里氏代换原则总结:
1>里氏代换原则是对开闭原则的扩展。
2>开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据。