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)接口隔离原则
分享到:
相关推荐
OCP考试_1Z0-053 V12.02_new.pdf Oracle Database 11g: Administration II
OCP 12C 题库1Z0-062 1Z0-063 1Z0-071更20.5.28_Q237 含答案解析说明
用uml软件介绍设计模式
OCP 1Z0-053-177q.vce
OCP 1Z0-053-679q.vce
Oracle OCP SQL-1Z0-071培训方案,总计14章,两天课程安排。 《OCA Oracle Database SQL认证考试指南(1Z0-071)》完整覆盖1Z0-071的全部目标,包含的主题如下: ●DDL和SQL SELECT语句 ●相关数据分组 ●对数据...
最新的OCP 11G 1Z0-051 V9.02.pdf
5 开闭原则-The Open-Closed Principle (OCP) 二 包的设计原则 6 重用发布等价原则-Release Reuse Equivalency Principle (REP) 7 无环依赖原则-The Acyclic Dependencies Principle (ADP) 8 稳定依赖...
OCP 认证考试1z0-047 278题题库文件PDF,题库试题VCE和考试模拟器打包下载
【OCP】 052 最新题目解答--小麦苗 --134道 【OCP】 052 最新题目解答--小麦苗 --134道
1、我是此套题库的作者,对准确性负责,考试83分通过2、扔掉你手上所有的那些错误百出的题库,只保留这一份终极题库即可3、作者提供考试全周期技术答疑与指导,资料内含作者联系方式4、作者亲自爆肝整理、实操验证每...
最新的OCP 11G 1Z0-052 V8.02.pdf
最新OCP题库TestInside1Z0-042V3.23,考试必备哦~下载后解压缩
OCP考试资料_OCP_19c_082 内容丰富 内容新
OCP题库Testinside1Z0-043V2.22,考试必备
Java Web设计模式之OCP(开闭原则) 如有疑问,请留言!
OCP题库Testinside1Z0-047V2.23,考试必备!
最新的OCP考试模拟器1Z0-043 最新的OCP题库和考试模拟器贡献给大家