定义
只考虑一种产品的生产,即工厂方法模式只考虑同等级的产品,用户只需要知道工厂的名字就可以创建相应的产品
架构
抽象工厂、具体工厂、抽象产品、具体产品
代码
Factory(抽象工厂)
public interface Factory {
NewBee make();
}
FactoryA(具体工厂A)
public class FactoryA implements Factory {
@Override
public NewBee make() {
System.out.print("工厂A===>");
return new NewBeeA();
}
}
FactoryB(具体工厂B)
public class FactoryB implements Factory {
@Override
public NewBee make() {
System.out.print("工厂B===>");
return new NewBeeB();
}
}
NewBee(抽象产品)
public interface NewBee {
void Giao();
}
NewBeeA(具体产品A)
public class NewBeeA implements NewBee {
@Override
public void Giao() {
System.out.println("我是产品A");
}
}
NewBeeB(具体产品B)
public class NewBeeB implements NewBee {
@Override
public void Giao() {
System.out.println("我是产品B");
}
}
Test
public class Test {
public static void main(String[] args) {
Factory a = new FactoryA();
NewBee beeA = a.make();
beeA.Giao();
Factory b = new FactoryB();
NewBee beeB = b.make();
beeB.Giao();
}
}
总结
抽象工厂创建抽象产品,
具体工厂实现抽象工厂重写抽象工厂的方法生产具体产品,
想要什么产品就先创建一个生产该产品的工厂,通过工厂来生产。
其实像设计模式中的所有工厂模式,实现的无非都是同一个理念,通过一个媒介来得到具体想要的东西,,不同之处就在于有的工厂很牛逼什么都可以造,有的工厂有局限性只能造某样东西。