美文网首页
六大设计原则之六:开闭原则

六大设计原则之六:开闭原则

作者: 杨志聪 | 来源:发表于2018-11-25 18:12 被阅读0次

背景

需求的变化是必然。那么当需求发生变化时,我们应该怎么样去实现新需求?可选方法有两个:1.修改原有代码;2.拓展原有代码。两个方法都可以实现新的需求,但是哪个方法更好呢?通过拓展原有代码的方法更好,原因主要有两个:1.提高效率;2.利于测试。

提高效率

程序员最痛苦的事情,莫过于阅读别人的代码。甭管原有的代码写得多么优秀还是多么糟糕,要把它读懂然后修改,都是一件异常痛苦的事。如果你接手过别人的项目,在修改别人代码的过程历经摧残后,你一定会很认同为什么在实现新需求时,要通过拓展原有的代码,而不是修改原有的代码。

通过拓展原有代码的方法,你不需要读懂原有代码的实现思路,你要做的大概就是了解一个类的接口,然后拓展这个类就行了,大大提高了开发效率。

利于测试

假设你历经九九八十一难,勉强读懂了原有的代码,然后你修改了其中一行代码,注意这里说的是一行代码,那么,你就能保证这对原有的功能不会产生任何影响吗?如果不能保证,那么是不是要对原有的功能重新测试一遍?

越是复杂的代码,修改后产生潜在问题的可能性越大。如果每次修改,都要让测试人员对原有功能重新测试一遍,那无疑就是对测试人员巨大的摧残。

通过拓展原有代码的方法,就能避免这个问题。由于对原有代码没有任何改动,所以就不需要对原有功能重新测试,这对于测试是非常有利的。

综上所述,我们知道实现新需求,要通过拓展原有代码,而不是修改原有的代码。通过拓展原有代码的方法显著提高开发人员和测试人员工作的幸福感,减少因为工作猝死的几率。

定义

通过上述的铺垫后,开闭原则(Open Closed Principle)的定义呼之欲出。我们直接来看一下开闭原则的定义:

Software entities like classes,modules and functions should be open for extension but closed for modifications.(类、模块和函数等软件实体应该对拓展开放,对修改关闭。)

上面我们提到,需求的变化是必然,当需求发生变化时,我们不能修改原有代码,我们要通过拓展原有代码去实现新需求。开闭原则要求软件实体要对拓展开放,而对修改关闭,其实就是对有利于应对需求变化的软件的总结。

实践

我们说有六大设计原则,但是它们之间不是平级的,其中开闭原则是总原则,是面向对象语言编程的终极目标,而另外五个原则只是针对于某一个具体问题。

要实现开闭原则,并非只有一条路径。其他五大设计原则,和后面要学习的23种设计模式,都为实现开闭原则提供了思路。

注意

开闭原则是终极目标,大师也无法百分百做到。但只要努力朝这个方向努力,可以显著改善一个系统的架构,做到拥抱变化。

相关文章

  • 开闭原则

    个人博客原文:开闭原则 设计模式六大原则之六:开闭原则。 简介 姓名 :开闭原则 英文名 :Open Closed...

  • 设计模式

    设计模式之六大原则 1,开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭,...

  • [Code Design] 六大设计原则之"开闭原则&

    六大设计原则之开闭原则 定义 开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开...

  • 六大设计原则 - 开闭原则【Open Close Princip

    六大设计原则 单一职责原则 里式替换原则 依赖倒置原则 接口隔离原则 迪米特原则 开闭原则 开闭原则 定义: So...

  • iOS 六大设计原则

    iOS六大设计原则:单一职责原则(Single Responsibility Principle)、开闭原则(Op...

  • iOS开闭原则和替换原则

    什么叫开闭原则? 六大模式设计原则之一的开闭原则是比较重要的,开闭原则其实就是“抽象构建框架,实现扩展细节...

  • 设计模式解析

    设计模式的六大原则 总原则:开闭原则(Open Close Principle)  开闭原则就是说对扩展开放,对修...

  • Android 设计模式:Java设计原则+设计模式 概述

    一、设计模式的六大原则 总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对...

  • 设计模式之代理模式(Proxy Pattern)

    设计模式中有六大原则和二十三设计模式。其中六大原则分别为:单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口...

  • 设计模式之建造者模式(Builder)

    设计模式中有六大原则和二十三设计模式。其中六大原则分别为:单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口...

网友评论

      本文标题:六大设计原则之六:开闭原则

      本文链接:https://www.haomeiwen.com/subject/qqtmqqtx.html