- 概念:对象由接口来创建,让实现接口的类来决定实例化哪个类,类的实例化推迟在子类中实现
例如猫和狗都属于动物一类,都具有吃饭这个功能。
先定义创建具体动物对象的接口IAnimal
public interface IAnimal {void eat();
}
分别创建实现接口IAnimal的两种动物 Cat类和Dog类
public class Cat implements IAnimal {public void eat() {System.out.println("喜欢吃猫粮");}
}
public class Dog implements IAnimal {public void eat() {System.out.println("喜欢吃狗粮");}
}
新建接口IAnimalFactory,由它来创建对象
public interface IAnimalFactory {IAnimal create();
}
分别新建CatFactory 和 DogFactory实现接口IAnimalFactory,来决定实例化Cat类和Dog类
public class CatFactory implements IAnimalFactory {public IAnimal create() {return new Cat();}
}
public class DogFactory implements IAnimalFactory {public IAnimal create() {return new Dog();}
}
新建测试类
public class MyTest {public static void main(String[] args) {IAnimalFactory dogFactory = new DogFactory();IAnimal dog = dogFactory.create();dog.eat();IAnimalFactory catFactory = new CatFactory();IAnimal cat = catFactory.create();cat.eat();}
}