java的23中设计模式之——抽象工厂模式(Abstract Factory)
考虑到如果使用工厂模式,那么每增加一个类,就要在工厂类中增加对应的方法,十分不利于代码的扩展,所以有抽象工厂模式, 实体类依然使用之前的实体类:
//首先 创建接口Pet 包含public方法eat();
public interface Pet {
public void eat();
}
//之后,创建Dog类实现Pet接口。
public class Dog implements Pet{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("狗狗吃骨头");
}
}
//再创建Cat类也实现Pet接口。
public class Cat implements Pet{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("喵喵吃小鱼");
}
}
然后我们创建一个工厂接口PetFactoryInterface,并创建两个工厂实现类://工厂类接口,所有工厂类需要实现该接口
public interface PetFactoryInterface {
//抽象方法
public Pet producePet();
}
//工厂类一
public class DogFactory implements PetFactoryInterface {
@Override
public Pet producePet() {
// TODO Auto-generated method stub
return new Dog();
}
}
//工厂类二
public class CatFactory implements PetFactoryInterface{
@Override
public Pet producePet() {
// TODO Auto-generated method stub
return new Cat();
}
}
最后我们使用测试类测试:
public class Test {
public static void main(String[] args) {
PetFactoryInterface pfi = new DogFactory();
pfi.producePet().eat();
}
}
//控制台输出如下:狗狗吃骨头