设计模式学习 Day2 开闭原则(OCP)

161 阅读1分钟

软件实体(类、模块、函数)应该对扩展开放,对修改封闭,OCP原则听起来很简单,但是实际使用却很困难,其主要是用来解决代码的可扩展性的,其主要的难度在于如何区别修改和扩展,从不同的维度去理解,修改和扩展可能是不一样的。一般情况下新需求用新代码实现,不需要修改现有的代码可以认为是符合这一原则的。一个具体的判断标准是:只要代码修改没有破坏原有的代码的正常运行,没有破坏原有的单元测试则可以认为是满足OCP的。

OCP原则要求我们在软件的设计中预留好扩展点,但是同时又要尽可能做到不过度设计,针对如下几种情况可以考虑适当的设计扩展点:

1)比较确定的,短期内就会扩展
2)需求改动,对代码的影响较大
3)实现成本低

实现满足OCP原则的代码常用的方法有:

1)多态
2)面向接口编程
3)依赖注入

此文章为3月Day2学习笔记,内容来源于极客时间《设计模式之美》