OCP设计原则(Open Close Principle),指对扩展是开放的,对修改是关闭的。
下面用代码进行说明:
public class Test {
public static void main(String[] args) {
Animal cat=new Cat();
Animal dog=new Dog();
Person p=new Person();
p.feed(cat);
p.feed(dog);
}
}
abstract class Animal{
abstract public void eat();
abstract public void walk();
}
class Dog extends Animal{
@Override
public void eat(){
System.out.println("dog eat");
}
@Override
public void walk(){
System.out.println("dog walk");
}
}
class Cat extends Animal{
@Override
public void eat(){
System.out.println("cat eat");
}
@Override
public void walk(){
System.out.println("cat walk");
}
}
class Person{
public void feed(Animal animal){
animal.eat();
animal.walk();
}
}
当需要添加一个Tiger类时,用ocp设计模式可不改动源代码,对代码进行扩展即可。
Dog、Cat、Tiger类中都有共同的方法eat()和walk(),把它们抽象到一个Aniaml类里,再用Person类去运用Aniaml类。
感谢浏览!