美文网首页
工厂模式

工厂模式

作者: yl1415 | 来源:发表于2017-04-23 11:37 被阅读0次

背景

工厂模式,顾名思义,就是生产对象的一种方式。传统使用new的方法有一些弊端:耦合问题,构造参数太多后不便等。

下面我们从一个示范,来看看使用new会遇到哪些问题。

public interface Pizza {
    void prepare();
    void bake();
    void cut();
    void box();
}
public class CheesePizza implements Pizza {
    public void prepare() {}
    public void bake() {}
    public void cut() {}
    public void box() {}
}
    Pizza orderPizza(String type) throws Exception {
        Pizza pizza;
        // 当增加/删除特定类型的pizza时, 这里的代码会频繁改动
        if (type.equals("cheese")) {
            pizza = new CheesePizza();
        } else if (type.equals("greek")) {
            pizza = new GreekPizza();
        } else {
            throw new Exception("no type pizza. type=" + type);
        }
        // 下面的部分代码不会改变
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();
        return pizza;
    }

将频繁改动的代码封装起来

public class SimplePizzaFactory {
    public Pizza createPizza(String type) throws Exception {
        Pizza pizza;
        // 当增加/删除特定类型的pizza时, 这里的代码会频繁改动
        if (type.equals("cheese")) {
            pizza = new CheesePizza();
        } else if (type.equals("greek")) {
            pizza = new GreekPizza();
        } else {
            throw new Exception("no type pizza. type=" + type);
        }
        return pizza;
    }
}

以上封装有几点说明如下:

  • 以后关于创建对象的改动都只需改动这一处代码,方便管理
  • 创建对象的方法也可以定义为一个静态方法,常被称为静态工厂。但这样一来,就不能够通过继承来改变创建方法的行为。

工厂模式定义

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

工厂模式类图如下:todo

相关文章

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

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

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

  • 【设计模式】- 工厂模式

    工厂模式分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。 工厂模式:靠工厂生产对象 简单工厂模式中只有一个工厂...

  • 工厂模式

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

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

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

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 第一章2.0工厂- 基础类准备

    2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

网友评论

      本文标题:工厂模式

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