`
huze104
  • 浏览: 97562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OCP开闭原则(0pen-Close Principle)

阅读更多

OCP开闭原则(Open-Close Principle)

 

1.什么是开闭原则

a)Software entities should be open forextension, but closed for modification
即:一个软件实体应当对扩展开放,对修改关闭
换言之,一个模块可以在不被修改的情况下,改变其外在行为

b)开闭原则带给软件开发的好处:

i.由于符合开闭原则   的系统对扩展是开放的,所以我们可以通过扩展现有系统提供新的系统行为,来满足对系统的新需求,这样就会使系统具有一定灵活性和适应能力。

ii.由于系统对于修改是关闭的,所以在关键的抽象层中不能再做修改,这就是系统具备了一定的稳定性和延续性。

 

2.在实际开发中如何做到开闭原则:
a)抽象化
在java中,我们可以给出若干抽象类或接口,在这些抽象中规定所有的可能出现的扩展。这样做后,由于抽象中已经包含了所有的扩展情况,我们已经不再需要对他们进行修改,从而达到了关闭。同时,我们可以从这些抽象中导出国歌具体类来改变系统的行为,所以这样系统对扩展又是开放的。
b)抽象化的实现方法
i. 抽象类
ii.接口


    3.对可变性进行封装

a)抽象过程要求包含所有的扩展情况(可变性),显然如何正确的把这些可变性归纳到一个抽象层中需要一定的原则:

i.一种可变性不应当散落在你代码的各处,而应当被封装在一个对象中

ii.一种可变性不能和另一种可变性混合

4.附属于OCP的其它原则

a)里氏代换原则

b)依赖倒转原则

c)合成/聚合原则

d)迪米特法则

e)接口隔离原则

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics