23种设计模式学习之抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码
动物的抽象接口
public interface Animal {
void run();
}
鸟实现动物的跑方法
public class Bird implements Animal {
public void run() {
System.out.println("飞着跑");
}
}
虫子实现动物的跑方法
public class Worm implements Animal {
public void run() {
System.out.println("趴着跑");
}
}
生成动物的工厂的接口
public interface AnimalFactory {
Animal createAnimal();
}
生产鸟的工厂
public class BirdFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Bird();
}
}
生产虫子的工厂
public class WormFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Worm();
}
}
利用工厂生产动物
public class Demo {
public static void main(String[] args) {
AnimalFactory factory=new BirdFactory();
Animal animal = factory.createAnimal();
animal.run();
}
}

浙公网安备 33010602011771号