美文网首页
程序设计六大原则 其六

程序设计六大原则 其六

作者: 天淡云清 | 来源:发表于2018-12-03 16:22 被阅读0次

开闭原则:定义,一个软件的实体,如类、模块和函数应该对扩展开放,对修改关闭。

开闭原则的定义已经非常明确告诉我们:软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

那什么是修改,什么是扩展。举例来说明,一个书店卖书的例子。

书籍接口
整体框架
接口实现类,用构造方法获数据,提供get方法由外部获取数据
书店售书类,静态模块初始化数据,添加售书方法
运行结果

项目做完了,可是现在需求做了变更,所有的书籍都做9折处理,这个时候应该怎么修改?一般来说,有如下三种方法;

1.修改接口,在接口上新增一个getOffPrice方法,专门用于打折处理,所有实现类也要实现这个方法。这样做的后果是,实现类Novel要修改,BookStore类也要修改。否决。

2.修改实现类,直接在实现类中加入getOffPrice方法,这样做变动的只有两个了,实现类和书店类。但该方法依然不够完美。

3.通过扩展来实现变化,即增加一个子类 OffNovelBook,覆写 getPrice 方法,高层次的模块(也就是 static静态模块区)通过 OffNovelBook 类产生新的对象,完成对业务变化开发任务。——好办法,修改也少,风险也小。

实现代码如下

此时再仅需修改书店实现类的静态代码块即可

运行结果

当你不需要打折时,也只需修改静态代码块即可。且在工程中,静态代码块中的初始化数据是由持久层完成,那么可以认为,我的主业务逻辑仅仅是扩展了一个子类就完成了需求,而没有对原本的程序做任何改动。这就是开闭原则的核心概念,程序应该对修改关闭,对扩展开放。不能因为一个需求的增加就去改动原本已经实现功能的程序。

相关文章

  • 程序设计的六大原则

    今天面试被问到程序设计的六大原则,一脸懵逼,什么程序设计六大原则,程序设计还有原则,还六大下面这篇文章介绍的挺全,...

  • 程序设计六大原则 其六

    开闭原则:定义,一个软件的实体,如类、模块和函数应该对扩展开放,对修改关闭。 开闭原则的定义已经非常明确告诉我们:...

  • 设计模式

    设计模式六大原则[设计模式六大原则(1):单一职责原则][设计模式六大原则(2):里氏替换原则][设计模式六大原则...

  • 设计模式-六大原则

    转载自 设计模式六大原则 目录:- 设计模式六大原则(1):单一职责原则- 设计模式六大原则(2):里氏替换原则-...

  • 设计模式六大原则

    目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...

  • 设计模式6大原则

    目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...

  • 设计原则之6大原则

    目录:设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置...

  • 设计模式 - 六大原则

    Reference 快速理解-设计模式六大原则 设计模式的六大原则 设计模式之六大原则作者:海子出处:http:/...

  • 每日Android源码设计模式之-24、总结

    面向对象程序设计是有六大原则的,但是这些原则也不是一定要遵循,只是说遵循这些原则能大大提高程序的解耦和扩展性,当然...

  • 无标题文章

    设计模式之六大原则(转载) 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多,但是很多地方解释...

网友评论

      本文标题:程序设计六大原则 其六

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