开闭原则指的是对扩展开发,对于修改关闭。对类模块是可以扩展的,但是不可修改的。
在软件设计之初要考虑到扩展的问题。但是如何做到对扩展开发,对修改关闭这可能就要结合其他的原则进行学习了。所谓扩展是指增加新的模块而不是在现有模块上添加新的东西。不修改就意味着代码是稳定的。
开闭原则是一个最基础的原则,这23种设计模式均遵守了此原则。那么为什么要使用开闭原则?
可以提高代码的复用性
提高代码的可维护性
如何使用开闭原则?
抽象约束
封装变化
首先看一下没有遵循开闭原则的例子:
1 |
|
如果系统中想要增加一种车的形式,那么相应的需要在人这个类中添加对应的车的方法,现在如果使用开闭原则,仅仅使用抽象描述车,那么就会很容易实现扩展如下:
1 |
|
对于新的车辆的添加,只需新建一个这个车辆的类,而不需要改变其他的东西,然后根据上下文环境,让人选择这辆车即可