目录
1、什么是开闭原则
软件实体应当对扩展开放,对修改关闭。
这里的软件实体包括以下几个部分:
- 项目中划分出的模块。
- 类与接口。
- 方法。
开闭原则的含义
当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。
开闭原则的作用
开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具体来说,其作用如下:
1. 对软件测试的影响。
2. 可以提高代码的可复用性。
3. 可以提高软件的可维护性。
遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。
2、使用说明
可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。
因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。
例如:
1、定义一个接口,定义交通工具方法。
2、具体的实现类实现接口,完成不同的实现方式。
这样,如果有多个交通方式,则只需要增加具体的类即可,不需要修改原来的代码。
package test;
/**
* 交通接口类 用于封装细节
*/
public interface Transportation {
public void tranWay();
}
/**
* 飞机类,用来实现交通类
*/
public class Arplane implements Transportation {
@Override
public void tranWay() {
System.out.println("飞机是飞在天上的");
}
}
/**
* 火车类,用来实现交通类
*/
public class tran implements Transportation {
@Override
public void tranWay() {
System.out.println("火车是跑在铁轨上的");
}
}