【设计模式】四:开放-封闭原则

开发封闭原则
定义:软件实体(类,模块,函数等等)应该可以扩展,但是不可以修改
特征:1:对于扩展是开发的,2:对于更改是封闭的
目标:当面对新的需求的时候,可以不用修改或者大幅改动之前封装好的内容,只需要进行扩展就可以满足新的需求
实现方式:在最初接到需求的时候,就应该仔细思考,考虑到需求会发生哪些变化,想的越多,越全,这样在面对需求更改的时候,
可以使用最少的成本,最高效的完成。这就是一直说的百分之70的时间用来思考,百分之30的时间用来实现
实际情况:无论模块多么封闭,在面对需求变化的时候,都无法做到完全封闭,都可能会有一些细微的改动,因此就需要在设计模块的时候,
做出选择,提前思考到有哪些变化种类,然后抽离出这些变化;例如之前实现的加减乘除,最开始直接到减的需求,然后产品又增加了
加的需求,此时我们就应该想到会有不同的计算规则,因此就需要对计算规则抽象出一个基类,然后每个具体的计算规则都继承自这个基类
这样新增新的计算规则时,只需要继承实现就可以了。
思考方向:
在实际的业务开发中,一开始我们可能会想不到那么多,我们也无法猜测产品的走向,可以做一些简单的封装等操作即可,但是后来产品提出
了同类需求的时候,我们就需要将他们之中的相同抽离,封装,继承,这样在以后实现同类需求时就是在增加新的代码,而不是在更改旧的代码
注意:查明可能需要变化所等待的时间越长,到时候封装,抽离越困难
重要性:开闭原则是面向对象的核心,遵循这个原则的话会体会到面向对象的可维护,可扩展,可复用,灵活性好的好处;但要注意拒绝不成熟的抽象
原文地址:https://www.cnblogs.com/rcltocode/p/10567104.html