面向对象原则之开发封闭原则

前言

面向对象有人分为五大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则。

也有人分为六大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则、迪米特法则。

现在我们来介绍开放封闭原则,也叫开闭原则

概念

开放封闭原则: 软件实体(模块、类、函数等)应该可以扩展,但是不可以修改。也就是说软件对扩展开放,对修改关闭。

需要说明的是,对修改关闭不是说软件设计不能做修改,只是尽量不要做不必要的修改。怎么才能做到呢?那就是有相应的扩展性。

其实,软件有相应的扩展性是好处,但是不能说每个地方都有扩展。反而造成了代码的臃肿。所以这里的扩展与修改关闭是有限制的。

开闭原则,可以说是其他五大原则的实现,也是面向对象设计的终极目标。我们也可以说成开闭原则是其他原则的核心。

深入理解

开闭原则其实在大话设计模式中说得非常好,让人通俗易懂。

它举了一个例子,我觉得说得非常好。是加减乘除法的例子。

开始需求是做一个加法的操作。后来继续加入减法、乘法、除法。

开始我们想加法以后可能会做一个需求变更:加入其它的算法法则。所以我们要有一个预判性,这个预判性会导致我们项目以后的扩展性,也会导致如果需求发生变更,程序修改的难易程度。

所以,我们要做一个算法法则的操作类,加减乘除法都继承此操作接口。再加一个算法法则的客户端类类操作此算法。
在这里插入图片描述

posted @ 2022-10-30 23:22  寒小韩  阅读(51)  评论(0编辑  收藏  举报