开闭原则
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、开闭原则的定义?
- 一个实体(类、模块、函数)应该对扩展开放,对修改关闭: 意思是要对一个实体类添加一些属性(方法)的时候,不应该去改这个实体类的代码,设计一个有意义的实体类来继承前面那个实体类代替调用;
- 用抽象构建框架,用实现扩展细节:意思是调用的时候,应该调用人家的抽象,而不是细节;
二、优点?
- 提高软件系统的可复用性和可维护性
三、业务场景和分析
1. 刚开始需求:
- 需求:写一个接口,输出JAVA课程的价钱;
- 分析:
- 需求刚开始的时候,可以分析出世界有一个实体类叫JAVA课程,而且课程是有价钱这个属性;
2. 需求发生变化时:
- 需求:现在JAVA课程打8折,写一个接口输出JAVA课程的打折价钱;
- 分析:
- 要对价钱*0.8,一般时可以直接修改JAVA课程类满足需求;
- 但是根据
开闭原则
,是不允许在JAVA课程类上做修改代码的; - 那就设计一个类,叫做JAVA打折类,所有属性继承JAVA类,增加一个方法用来计算出打折价钱;
四、UML
五、代码
总结
开闭原则 直白点就是先想会不会有扩展发生,然后别轻易改动以前的代码