美文网首页
设计模式-工厂

设计模式-工厂

作者: ZjyMac | 来源:发表于2018-05-07 13:57 被阅读0次

一,工厂模式概述

  • 概念
    工厂模式是一种创建者模式,在任何生成复杂对象的地方都可以使用工厂模式。
  • 工厂模式的分类
    简单工厂模式
    工厂模式
    抽象工厂模式

二,简单工厂模式

  • 概念
    简单工厂模式,一个具体工厂负责生产所有具体产品。客户端只需要关注生成的具体产品
  • UML
    image.png
    Factory:表示具体生产产品的工厂类
    Product:抽象产品类
    P1/P2:具体的产品类
  • 代码实例
public abstract class AbstractProduct {
    public abstract void usePhone();
}
public class AndroidPhone extends AbstractProduct {
    @Override
    public void usePhone() {
        Log.e("zjy", "android手机");
    }
}

public class IosPhone extends AbstractProduct {
    @Override
    public void usePhone() {
        Log.e("zjy","ios手机");
    }
}


public class PhoneFactory {
    public AbstractProduct createPhoneProduct(String name) {
        AbstractProduct product = null;
        if ("android".equals(name)) {
            product = new AndroidPhone();
        } else if ("ios".equals(name)) {
            product = new IosPhone();
        }
        return product;
    }
}

 PhoneFactory factory = new PhoneFactory();
 AbstractProduct product1 = (AndroidPhone) factory.createPhoneProduct("android");
        product1.usePhone();
  • 优点
    客户端需要的产品,可以直接得到,逻辑判断在工厂里边
  • 缺点
    扩展性一般,杜宇不在产品族中的产品,无法扩展,获取具体产品的方法存在于工厂中如果需要添加产品,需要修改工厂中的代码

三,工厂模式

  • 概念
    抽象产品,派生出去多种具体的产品.
    抽象工厂,派生出多种产品工厂类.
    具体的工厂负责一种具体的产品.
  • UML
    image.png
  • 代码
  • 优点
    扩展性,能够处理不同产品系列的产品,通过具体的工厂去生成不同产品族的产品,扩展性较好。
  • 缺点
    类的个数较多。另外一个工厂的只能够生产一个具体的产品。

四,抽象工厂模式

  • 概念
    多个抽象产品类
    每个抽象产品类可以派生出多个具体产品类
    一个抽象工厂类,可以派生出多个具体工厂类
    每个具体工厂类可以创建多个具体产品类的实例

五,总结

1.工厂模式是一个创建型的模式
2.在任何使用A a = new A()的情况下,理论上说都能使用工厂模式。
3.在工厂模式分别的对应使用中,简单工厂模式,注重具体生成的产品,而工厂模式,注重的同一个产品下的不同产品族的产品。如栗子中上海大众的汽车和一汽大众的汽车,抽象工厂模式更多事在与整体产品的架构上,不再是单一一个的抽象产品类。
4.工厂模式:一个抽象产品派生出去多个具体的产品,一个抽象工厂派生出多个具体的工厂,而一个具体的工厂对应生成的是一个具体的产品。
5.抽象工厂模式:多个抽象产品分别派生出多个具体的产品,一个抽象工厂派生成出多个具体的工厂,一个工厂对应生成多个具体的产品,这些多个抽象产品之间存在着联系。

相关文章

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

网友评论

      本文标题:设计模式-工厂

      本文链接:https://www.haomeiwen.com/subject/kddycftx.html