美文网首页
安卓设计模式-简单工厂模式

安卓设计模式-简单工厂模式

作者: 非爱狂风 | 来源:发表于2019-03-19 13:46 被阅读0次

安卓设计模式-简单工厂模式

是什么

简单工厂模式又称为静态方法模式(因为工厂类中定义了一个静态方法),简单工厂模式可以理解为负责生产对象的一个类,称为工厂类。

有什么

  • 抽象产品类
  • 具体产品类(A产品、B产品)
  • 具体工厂类

怎么做

  1. 定义一个抽象产品类
public abstract class Product(){
    public abstract void show();
}
  1. 定义具体产品类继承Product
public class AProduct extends Product{
    public void  show(){
        System.out.print("我是产品A");
    }
}
public class BProduct extends Product{
    public void  show(){
        System.out.print("我是产品B");
    }
}
  1. 创建工厂类创建具体的产品
public class Factory{
    public  static Product create(String productName){
        Product p=null;
        swich(productName){
            case "A"
            p=new AProduct();
            break;
            case "B"
            p=new BProduct();
            break;
        }
        return p;
    }
}
  1. 演示
public void test() {
        Factory.create("A").show();//生产ProductA
        Factory.create("B").show();//生产ProductB
        try {
            Factory.create("C").show();//生产ProductC
        } catch (NullPointerException e) {
            System.out.println("没有ProductC");//没有ProductC,会报错
        }
    }

什么时候用

  1. 生成复杂对象是确定只有一个工厂类可以使用简单工厂类

优缺点

优点:
(1)代码解耦,创建实例的工作和使用实例的工作分开,使用者不必关系对象如何创建

缺点:
(1)违背开放封闭原则,若需要添加新产品则必须修改工厂类

简单工厂类优化

简单工厂类新增产品时需要直接修改工厂类违反了开发封闭原则,因此可以通过反射来创建实例对像,确保能够遵循开放封闭原则

public class Factory{
    public static <T extends Product> create(Class<T> cls){
        Product p=null;
        p=(Product)Class.forName(cls.getClassName).newInstance();
        return (Product)p;
    }
}

相关文章

  • 安卓设计模式-简单工厂模式

    安卓设计模式-简单工厂模式 是什么 简单工厂模式又称为静态方法模式(因为工厂类中定义了一个静态方法),简单工厂模式...

  • 工厂模式

    安卓常用的设计模式 工厂模式(Factory Pattern)是 Android中最常用的设计模式之一。这种类型的...

  • 设计模式-工厂模式

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

  • 设计模式一、单例模式

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

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

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

  • 设计模式三、工厂模式

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

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • iOS设计模式-工厂模式

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

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 相近设计模式比较

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

网友评论

      本文标题:安卓设计模式-简单工厂模式

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