设计模式六大原则:(六) 开闭原则

简介

开闭原则定义:Software entities like classes, modules and functions should be open for extension but closed for modificaions.(一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。)

在哲学上,矛盾法则即对立统一的法则,是唯物辩证法的最根本法则。开闭原则是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。

最佳实践

软件实体包含一下几个部分:

  • 项目或软件产品中按照一定的逻辑规则划分的模块。
  • 抽象和类。
  • 方法。

一个软件产品只要在生命期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计时尽量适应这些变化,以提高项目的稳定性和灵活性,真正实现“拥抱变化”。

我们可以把变化归纳为以下三种类型:

  • 逻辑变化
  • 子模块变化
  • 可见视图变化

可通过以下几个方面来理解其重要性:

  1. 开闭原则对测试的影响
  2. 开闭原则可以提高复用性
  3. 开闭原则可以提高可维护性
  4. 面向对象开发的要求

开闭原则是一个非常虚的原则,一切需要自己去体会和掌握,开闭原则也是一个口号,那么我们怎么把这个口号应用到实际工作中呢?:

  1. 抽象约束
  2. 元数据控制模块行为
  3. 制定项目章程
  4. 封装变化

参考资料

设计模式之禅-第六章 开闭原则

z.h.l wechat
欢迎您扫一扫,订阅我的微信公众号