Java学习笔记(6)-23种设计模式之抽象工厂模式

2020-02-22  本文已影响0人  非典型程序猿

上篇总结了工厂方法模式的使用,可以知道工厂方法模式中,一个工厂对应一种产品,对于实际的开发过程中来说这还不够,所以这篇我们总结工厂模式的升级版,抽象工厂模式。

定义

是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

结构

示例

光看定义和结构肯定还是有点难以理解,我们还是直接通过代码来学习。

public class MyTest{
    public static void main(String[] args) throws CloneNotSupportedException {
        Factory factory = new Factory();
        factory.newProductA().showing();
        factory.newProductB().showing();
    }
    /**
     * 定义多个产品
     */
    interface ProductA{
        void showing();
    }
    interface ProductB{
        void showing();
    }

    /**
     * 定义具体产品
     */
    static class Product1 implements ProductA{
        @Override
        public void showing() {
            System.out.println("具体产品1显示...");
        }
    }
    static class Product2 implements ProductB{
        @Override
        public void showing() {
            System.out.println("具体产品2显示...");
        }
    }
    /**
     * 定义抽象工厂接口
     */
    interface AbstractFactory{
        ProductA newProductA();
        ProductB newProductB();
    }
   /**
    * 定义具体工厂
    */
   static class Factory implements AbstractFactory{

       @Override
       public ProductA newProductA() {
           System.out.println("具体产品1生成...");
           return new Product1();
       }

       @Override
       public ProductB newProductB() {
           System.out.println("具体产品2生成...");
           return new Product2();
       }
   }

}

小结:其实抽象工厂模式是工厂方法模式的升级版,一个工厂能够生产出更多的产品,但是同时优缺点也很明显了。

抽象工厂模式就总结到这里啦,觉得有帮助记得点个赞~

上一篇 下一篇

猜你喜欢

热点阅读