开闭原则

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、开闭原则的定义?

  1. 一个实体(类、模块、函数)应该对扩展开放,对修改关闭: 意思是要对一个实体类添加一些属性(方法)的时候,不应该去改这个实体类的代码,设计一个有意义的实体类来继承前面那个实体类代替调用;
  2. 用抽象构建框架,用实现扩展细节:意思是调用的时候,应该调用人家的抽象,而不是细节;

二、优点?

  • 提高软件系统的可复用性和可维护性

三、业务场景和分析

1. 刚开始需求:

  • 需求:写一个接口,输出JAVA课程的价钱;
  • 分析:
    1. 需求刚开始的时候,可以分析出世界有一个实体类叫JAVA课程,而且课程是有价钱这个属性;

2. 需求发生变化时:

  • 需求:现在JAVA课程打8折,写一个接口输出JAVA课程的打折价钱;
  • 分析:
    1. 要对价钱*0.8,一般时可以直接修改JAVA课程类满足需求;
    2. 但是根据 开闭原则,是不允许在JAVA课程类上做修改代码的;
    3. 那就设计一个类,叫做JAVA打折类,所有属性继承JAVA类,增加一个方法用来计算出打折价钱;

四、UML

开闭原则

五、代码


总结

开闭原则 直白点就是先想会不会有扩展发生,然后别轻易改动以前的代码