美文网首页
简单工厂

简单工厂

作者: 熊猫派 | 来源:发表于2019-01-24 16:14 被阅读0次

在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

包括三个角色:
-Factory:工厂角色
-Product:抽象产品角色
-ConcreteProduct:具体产品角色
UML类图:


SimpleFactory.jpg

抽象产品角色

public abstract class Product  {
    //所有产品类的公共业务方法
    public void methodSame() {
        //公共方法的实现
    }
    //声明抽象业务方法
    public abstract void methodDiff();
}

具体产品

//具体产品A
public class ConcreteProductA extends Product {
    // 产品A实现方法
    @Override
    public void methodDiff() {

    }
}
//具体产品B
public class ConcreteProductB extends Product {
    //产品B实现方法
    @Override
    public void methodDiff() {

    }
}

工厂角色

//工厂角色
public class Factory {

    public static Product getProduct(String productType){
        Product product = null;
        if (productType.equalsIgnoreCase("A")) {
            product = new ConcreteProductA();
            //初始化设置product
        }
        else if (productType.equalsIgnoreCase("B")) {
            product = new ConcreteProductB();
            //初始化设置product
        }
        return product;
    }
}

客户端

//客户端简单工厂使用
public class Client {
    public static void main(String[] args) {
        Product product = Factory.getProduct("A");
        product.methodSame();
        product.methodDiff();
    }
}

简单工厂模式的优点

1.实现了对责任的分割,提供了专门的工厂类用于创建对象。
2.客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可。
3.可以在不修改任何客户端代码的情况下更换和增加新的具体产品类。

简单工厂模式的缺点

1.工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
2.增加系统中类的个数。增加了系统的复杂度和理解难度。
3.系统扩展困难,一旦添加新产品就不得不修改工厂逻辑。
4.由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

适应环境

1.客户端只知道传入工厂类的参数,对于如何创建对象不关心。
2.工厂类负责创建的对象比较少。

参考:
https://design-patterns.readthedocs.io/zh_CN/latest/creational_patterns/simple_factory.html#id23

相关文章

  • 工厂模式理解

    工厂模式分为简单工厂、工厂模式、抽象工厂三种层级概念。简单工厂不属于23种设计模式,抽象工厂才是。 简单工厂 简单...

  • 设计模式-工厂模式

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

  • 工厂模式

    首先,简单工厂模式不属于23中涉及模式,简单工厂一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂。 A、简...

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 工厂模式

    什么是工厂模式? 工厂模式分为三种:简单工厂工厂方法抽象工厂今天主要介绍的简单工厂:简单工厂(SimpleFact...

  • 设计模式(java)- 单例模式

    之前学习是简单工厂模式、工厂方法模式、抽象工厂模式,复习一下 简单工厂模式 简单工厂模式大概就是创建一个简单工厂类...

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

  • 工厂模式——IOS版

    一、前言 工厂模式种类:简单工厂、工厂方法、抽象工厂 IOS中的应用:类簇 二、简单工厂 介绍:简单工厂模式是属于...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • 设计模式-工厂模式

    一、工厂模式分类 简单工厂模式 工厂方法模式 抽象工厂模式 二、简单工厂模式 简单工厂就是讲需要new对象的那段代...

网友评论

      本文标题:简单工厂

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