OO的复用原则

最近在看java设计模式,想对OO的服用原则稍微终结下.
OO的复用设计原则有 :OCP,DIP,LSP,ISP,CARP,LoD。
充分利用这些原则可以提高软件的复用性

1.开闭原则 OCP(Open-Closed Princple):很简单,一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。如果从另外一个角度来讲就是"对可变性的封装原则(Principle of Encapsulation of Variation 或者EVP )"
EVP 意味着两点:
(1)一种可变性不应当散落在代码的很多角落里,应该设计在一个对象里面.
(2)一种可变性不应当与另一种可变性混合在一起.

2.里氏替换原则 LSP “Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立.
强调子类一定要严格拥有父类的所以特征,比如鸟类和企鹅,鸟类有个fly()方法,但企鹅不会飞.这将使得鸟类的特征在企鹅中不成立了,违反了LSP原则.

3.依赖倒置原则(Dependency Inversion Princple)DIP
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。Spring 的IOC就是充分利用了这个原则.
简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:
抽象不应当依赖于细节;细节应当依赖于抽象;
要针对接口编程,不针对实现编程。

4.ISP(Interface Segregation )接口隔离原则
接口隔离原则讲的就是同一个角色提供宽、窄不同的接口,以对付不同的客户端。比如同一台洗衣机,我可以专门用它来洗衣服,也可以将自己洗好的衣服甩干.而每个功能都是提供的不同的按扭,这些按扭就相当于我们讲的接口.

5.组合/聚合复用原则 CARP(Composition/Aggregation Princple) 合成/聚合原则将的是,要尽量使用合成/聚合,而不是使用继承关系达到复用的目的.它和LSP是相辅相成的,两者都是对OCP的实现的具体方法.

6.迪米特法则 LoD(Law of Demeter) 一个软件实体应该与尽可能少的实体发生相互作用,是一条通向OCP原则的道路.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值