软件架构设计原则
开闭原则
开闭原则(Open-Closed Principle,OCP)是指一个软件实体,应该对扩展的开放的,对于修改是关闭的。开闭就是指拓展与修改两个行为。什么意思呢?就是说对于一个Java对象来讲,你可以去继承它方法和属性,对继承类进行拓展,但是不可以直接修改它的方法和属性。这样提高了软件系统的可复用性和可维护性。
开闭原则作为面向对象设计的基本原则,直接对接了面向对象的三大特性,继承、封装、多态。可以在不修改源代码的情况下实现新增功能。
简单的举个例子,宠物 Pets,有名字、年龄大小、毛色等属性
public class Pets{
private String name;
private Integer age;
private String color;
}
整个宠物圈,可能有小猫、小狗、小猪等等一些宠物。例如下面来建立一个一个猫的宠物类型,它除了上面的属性之外,还有一个动作就是吃。这个时候可以继承Pets类然后给小猫一个吃的方法。
public class CatPets extends Pets{
public void eat(){
}
}
对于小狗、小猪也是以同样的方式创建,这个时候我们可以知道,猫也有很多的更细的分类。这个时候我们对于每个猫的修改就是继承CatPets进行更加细致的分类了。而不是去修改顶层的Pets类型。
依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)是指在设计代码结构的时候,高层次的模块不应该依赖低层次的模块,二者都应该依赖其抽象。抽象内容不应该依赖具体的细节性的内容。通过依赖倒置,可以减少类对象与类对象之间的耦合性。这样可以提高系统的稳定性,提高代码的可读性和可维护性,并且能够降低修改程序所造成的后续风险。
拿上面的宠物的例子来讲,先创建一个人的对象Person类
public class