JAVA之面向对象设计原则

 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>开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值