设计模式六大原则---开闭原则(开发扩展、关闭修改)

定义

开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。

这里的软件实体包括以下几个部分:
1、项目中划分出的模块
2、类与接口
3、方法

开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码的前提下,可以扩展实体的功能,使其满足新的需求。

实现方法

可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。

举个例子,客户买车,有的时候想买宝马,有的时候想买奥迪,这样就需要创建一个抽象类Car。将参数类型设置成Car。宝马和奥迪继承Car。无论客户想买哪种车都支持。如果客户以后想买奔驰车,那直接新增一个Benz,让它继承Car,就可以直接使用了。代码如下:

1:实现类:BMW,继承抽象类Car.
在这里插入图片描述
2:实现类:Audi,继承抽象类Car.
在这里插入图片描述
3:Cutomer类,通过BuyCar 来买车,参数是抽象类:Car
在这里插入图片描述
4:无论客户想买什么车,只要创建一个对象,传给BuyCar 都支持
在这里插入图片描述
上面这个demo就能体现出开闭原则的含义,对扩展开发,对修改关闭(购买奔驰,没有修改任何代码,只需要增加一个奔驰类,让它继承Car)。

作用

开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。

  1. 对软件测试的影响:软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了。
  2. 可以提高代码的可复用性:粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。
  3. 可以提高软件的可维护性:遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值