为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。

    相对于工厂模式,我们可以新增产品类(只需要实现产品接口),只需要同时新增一个工厂类,客户端就可以轻松调用新产品的代码。

    • 接口

      1. interface food{}
    • 两个实现类

      1. class A implements food{}
      2. class B implements food{}
      3. interface produce{
      4. food get();
      5. }
    • 工厂类 ```java class FactoryForA implements produce{ @Override public food get() {

      1. return new A();

      } }

    class FactoryForB implements produce{ @Override public food get() { return new B(); } }

    1. ```java
    2. public class AbstractFactory {
    3. public void ClientCode(String name){
    4. food x= new FactoryForA().get();
    5. x = new FactoryForB().get();
    6. }
    7. }