美文网首页
android常用设计模式之简单工厂模式

android常用设计模式之简单工厂模式

作者: 好大一只龍 | 来源:发表于2017-12-20 23:25 被阅读13次

定义:简单工厂模式属于创建型模式,其又被称为工厂方法模式,这是由一个工厂对象决定创建出哪一种产品型的实例。

简单工厂模式类图:
简单工厂模式类图.jpg

在简单工厂模式中有如下角色:

  • Factory: 工厂类,这是简单工厂模式的核心,负责实现创建实例内部的逻辑。
  • IProduct:抽象产品类,这是简单工厂模式所创建的所有对象的父类,它负责描述所有实例所工有的公共接口。
  • Product: 具体产品类,这是简单工厂类的创建目标。
DEMO&代码

场景: 最近公司在接入了两款活体检测sdk,而且后续还会接入其他的活体检测sdk。代码如下:

public abstract class AbstractLivingDetection {
    /**
     * 开始检测
     */
  public abstract void startDetection();
}
public class HaiXinLivingDetection extends AbstractLivingDetection {
    @Override
    public void startDetection() {
        System.out.println("开启海鑫活体检测");
    }
}
public class TongFuDunLivingDetection extends AbstractLivingDetection {
    @Override
    public void startDetection() {
        System.out.println("开启通付盾活体检测");
    }
}
public class LivingDetectionFactory {
    public static AbstractLivingDetection createLivingDetection(String type){
        AbstractLivingDetection livingDetection = null;
        switch (type){
            case "tongfudun":
                livingDetection = new TongFuDunLivingDetection();
                break;
            case "haixin":
                livingDetection = new HaiXinLivingDetection();
                break;
            default:
                break;
        }
        return  livingDetection;
    }
}
使用场景
  • 工厂类负责创建的对象比较少。
  • 客户只需知道传入工厂类的参数,而无须关心创建对象的逻辑。
优点:
  • 使用户根据参数获得对应的类实例,避免了直接实例化类,降低了耦合性。
缺点:
  • 可实例化的类型在编译期间已经确定。如果增加新类型,则需要修改工厂,这违背了开放封闭原则。简单工厂需要知道所有要生成的类型,其当子类过多或者子类层次过多时不适合使用。

代码已上传github

相关文章

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 简单工厂模式(SimpleFactoryPattern)- 最易

    前言 今天我来全面总结一下Android开发中最常用的设计模式 - 简单工厂模式。 目录 1. 含义 简单工厂模式...

  • Android 工厂模式

    Android 工厂模式 Android 23种设计模式 前言 工厂模式是创建型模式,使我们常用/常见的模式之一。...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

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

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

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

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

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

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

  • Android设计模式-模版方法模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android设计模式-迭代器模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android设计模式-享元模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

网友评论

      本文标题:android常用设计模式之简单工厂模式

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