何为开闭原则
开:对外扩展是开放的
闭:对内修改是封闭的
认知:在设计一个模块时,应当使得此模块在不被修改源代码情况下来改变这个模块的内容
加深开闭原则印象
此处,我们将会通过案例的方式来让读者进一步加深对开闭原则的印象。
案例分析
我们通过接口来同一定义动物们吃这一行为。然后写具体动物的类,继承此行为。若要扩展行为,可以在具体的动物类当中进行扩展,而不是直接在同一行为的接口处进行扩展。
案例代码显示
接口:统一定义动物共同行为
public interface Animal {
void eat();
}
具体动物类:各个动物其独有行为(扩展)与共同行为
public class Cat implements Animal{
private String name;
public Cat(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void eat() {
System.out.println(getName()+"正在吃...");
}
public void sleep(){
System.out.println(getName()+"正在睡觉...");
}
}
public class Dog implements Animal{
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void eat() {
System.out.println(getName() + "正在吃...");
}
}
代码的实现
public class Test {
public static void main(String[] args) {
Dog dog = new Dog("小狗");
Cat cat = new Cat("小猫");
dog.eat();
cat.eat();
cat.sleep();
}
}
结果展示
小狗正在吃...
小猫正在吃...
小猫正在睡觉...