<h1 style="text-align: center;">开闭原则</h1><h2>1 定义</h2> 一个软件应该通过扩展来实现变化,而不是修改已有的代码来实现变化。它是一个口号,没有具体的解释。
<h2>2 我们应该怎么把口号,应用到实际项目中去。</h2><h3> 1 、抽象约束</h3> 1、通过接口或者抽象类约束扩展
2、参数类型、引用对象尽量使用接口或者抽象类
3、抽象层尽量保持稳定,一旦确认即不允许修改
<h3> 2、元数据控制模块的行为</h3> 尽量使用元数据控制程序的行为。元数据是描述环境和数据的数据,就是配置参数。可以从文件中获取,也可以从数据库中获取。如:springcontext的配置。
<h3> 3、制定项目章程</h3> 项目章程是项目所有人员都必须遵守的约定。对项目来说约定优于配置。如包的命名规则,新建文件存放位置等等。
<h3> 4、封装变化</h3> 1、将相同的变化封装到一个接口或者抽象类中
2、将不同的变化封装到不同的接口或者抽象类中
<h2>3 总结</h2> 开闭原则可以提高复用性
提高维护性
它是面向对象开发的要求
<h2>2 我们应该怎么把口号,应用到实际项目中去。</h2><h3> 1 、抽象约束</h3> 1、通过接口或者抽象类约束扩展
2、参数类型、引用对象尽量使用接口或者抽象类
3、抽象层尽量保持稳定,一旦确认即不允许修改
<h3> 2、元数据控制模块的行为</h3> 尽量使用元数据控制程序的行为。元数据是描述环境和数据的数据,就是配置参数。可以从文件中获取,也可以从数据库中获取。如:springcontext的配置。
<h3> 3、制定项目章程</h3> 项目章程是项目所有人员都必须遵守的约定。对项目来说约定优于配置。如包的命名规则,新建文件存放位置等等。
<h3> 4、封装变化</h3> 1、将相同的变化封装到一个接口或者抽象类中
2、将不同的变化封装到不同的接口或者抽象类中
<h2>3 总结</h2> 开闭原则可以提高复用性
提高维护性
它是面向对象开发的要求