美文网首页
二.工厂方法模式

二.工厂方法模式

作者: Seven_DQ | 来源:发表于2018-08-28 17:14 被阅读0次

定义

定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行
意思就是,定义一个工厂接口,接口中以一个生产对象的接口,让工厂子类实现这个接口来生产对象,来创建对象

模型

模型图

代码实例

  1. 工厂接口
public interface CardFactory {

    /**
     * 创建对象
     * @param cardType
     * @return
     * @throws Exception
     */
    Card createCard(CardType cardType) throws Exception;
}
  1. 实现工厂,实现方法
public class CardFactoryImpl implements CardFactory {

    private static Map<CardType,Card> map = new HashMap<CardType, Card>();

    /**
     * 根据type创建对于的对象
     * @param cardType
     * @return
     * @throws Exception
     */
    public Card createCard(CardType cardType) throws Exception {
        if (!map.containsKey(cardType)){
            throw new Exception("无此类型的card");
        }
        return map.get(cardType);
    }

    static {
        map.put(CardType.GREEN_CARD, new GreenCard());
        map.put(CardType.RED_CARD, new RedCard());
    }
}

实现createCard方法来根据不同的type创建对应的对象,这里我是用集合来存放对象,目的是减少多个if判断

  1. 产品类
public interface Card {

    public void color();
}
public class GreenCard implements Card {
    public void color() {
        System.out.println("green card");
    }
}
public class RedCard implements Card {
    public void color() {
        System.out.println("red card");
    }
}

用途

  1. 良好的封装性,调用者只需知道产品的type,并需要之道创建的对象的过程
  2. 良好的扩展性,出现第三种卡片,我们只需要创建一个新的卡片类和在工厂中的map中添加,而对于调用者不需要更改任何代码,只需要使用新的type就可以获得新的对象

源代码

factory-method

相关文章

  • 工厂方法模式

    一、工厂方法模式介绍 二、工厂方法模式代码实例

  • 全面了解工厂模式

    工厂模式是啥? 简单工厂是工厂模式吗? 工厂模式的哼哈二将(工厂方法、抽象工厂) 一、工厂模式是啥? ​ 我们...

  • 设计模式-工厂模式

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

  • 工厂模式

    3.工厂模式 按照业务场景划分:一、简单工厂模式,二、工厂方法模式,三、抽象工厂模式。 3.1 简单工厂模式 即静...

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

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

  • 设计模式-工厂方法模式

    这一篇博文来介绍工厂模式中的第二种工厂方法模式。 介绍 工厂方法模式(Factory Method Pattern...

  • 设计模式-工厂模式

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

  • 设计模式-工厂方法模式

    1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 普通工厂模式 多个工厂模式 静态工厂模式...

  • 设计模式 工厂模式

    工厂模式 工厂模式三大类1、简单工厂模式(静态工厂方法模式)2、工厂方法模式3、抽象工厂模式(Kit模式) 简单工...

  • 简单工厂模式

    一、前言 工厂模式是个比较复杂的模式,大体上分为三类:1、简单工厂模式;2、工厂方法模式;3、抽象工厂模式; 二、...

网友评论

      本文标题:二.工厂方法模式

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