美文网首页
简单工厂模式

简单工厂模式

作者: Doter | 来源:发表于2018-08-20 22:10 被阅读0次

简单工厂模式

简单工厂模式,不属于设计模式,它违反了高类聚,低耦合。

优点:

  1. 使用方便,只需要指定需要哪种产品,至于产品如何创建不用关注。
  2. 可以屏蔽工厂的实现。

缺点:

  1. 每增加一个产品,需要修改原有的工厂。

java代码实例:

  1. 构建一个产品接口,约定一下每个产品现在有一个getName()方法
public interface Product {
    public String getName();
}
  1. 现实产品A,B
public class ProductA implements Product {
    @Override
    public String getName() {
        return "this is product A";
    }
}
public class ProductB implements Product {
    @Override
    public String getName() {
        return "this is product B";
    }
}
  1. 实现工厂类
public class ProductFactory {
    static public Product getProduct(String name) {
        if (name.equals("A")) {
            return new ProductA();
        } else {
            return new ProductB();
        }
    }
}
  1. 使用:
public class Main {
    public static void main(String[] args) {
        Product product = ProductFactory.getProduct("A");
        System.out.println(product.getName());
        product = ProductFactory.getProduct("B");
        System.out.println(product.getName());
    }
}

接下来我尽可能的用代码演示它的优缺点。

  1. 如果我现在要生产新ProductC,那么我需要增加一个ProductC,并且为工厂加入ProductC。
public class ProductC implements Product {
    @Override
    public String getName() {
        return "this is product C";
    }
}
public class ProductFactory {
    static public Product getProduct(String name) {
        if (name.equals("A")) {
            return new ProductA();
        } else if(name.equals("B")){
            return new ProductB();
        }else{
            return new ProductC();
        }
    }
}
  1. 在需要的地方即可生产ProductC
public class Main {
    public static void main(String[] args) {
        Product product = ProductFactory.getProduct("A");
        System.out.println(product.getName());
        product = ProductFactory.getProduct("B");
        System.out.println(product.getName());
        product = ProductFactory.getProduct("C");
        System.out.println(product.getName());
    }
}

根据以上分析,缺点就是每添加一个产品,都要去修改工厂类。
优点:是屏蔽工厂的实现
所以推荐使用工厂模式。

相关文章

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

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

  • 设计模式-工厂模式

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

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • iOS设计模式-工厂模式

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

  • 相近设计模式比较

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

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

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

  • 设计模式2-工厂模式

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式 简单工厂模式 简单工厂模式,就是建立一个工厂类,对实现了同一...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 设计模式-工厂模式

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

网友评论

      本文标题:简单工厂模式

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