什么是开闭原则(OCP)?

开放/封闭原则 是软件开发世界中最基本的设计原则。 它指导我们如何构建一个稳定而灵活的系统。

定义:

类、模块和函数等软件实体应该对扩展开放,对修改关闭。

开闭原则的含义是应该扩展一个软件实体来实现改变,而不是通过修改现有代码来实现改变。

开闭原则是限制软件实体未来事物当前开发和设计的原则。

注:开闭原则是对扩展开放,对修改关闭。这并不意味着不会进行任何修改。低级模块的变化必须与高级模块耦合,否则将是一个孤立的、无意义的代码片段。

开闭原则的重要性:

  • 开闭原则对测试的影响

开启和关闭的原则是保持原始测试代码仍然能够正常运行,我们只需要测试扩展代码。

  • 开闭原理可以提高复用性

在 面向对象设计中,所有逻辑都是由原子逻辑组合而成,而不是在一个类中独立实现一个业务逻辑。只有这样,代码才能被重用。粒度越小,被复用的可能性就越大。

  • 开闭原则可以提高可维护性
  • 面向对象的开发需求

如何使用开合原理:

、通过接口或抽象类限制扩展,限制边界的扩展,不允许接口或抽象类中不存在的公共方法;

其次,尽量使用接口或抽象类作为参数类型和引用对象,而不是实现类;

第三,抽象层要尽量保持稳定,一旦确定,就不允许修改。

变化的封装有两层含义:

首先,将相同的更改封装到接口或抽象类中;

其次,将不同的变化封装到不同的接口或抽象类中。两个不同的变化不应该出现在同一个接口或抽象类中。


例子

例如,手动打开和关闭门。

如果有新的需求,就需要增加手动开合抽屉的功能。代码需要添加一个Drawer类,同时修改Hand类。

以OCP开闭原理为例,手动开闭门依赖于一个接口,具体实现类实现该接口。

当需要增加打开和关闭冰箱的手数时,冰箱类在不修改原有的Hand类和接口的情况下实现了这个接口。

更多面向对象的资源

Leave a Reply

您的电子邮箱地址不会被公开。