工厂方法模式

作者: stark_tony | 来源:发表于2016-08-30 23:27 被阅读38次

Java23种设计模式--工厂方法模式

一、什么是工厂方法模式

  • 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实现创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。

二、模式中包含的角色及其职责

1. 抽象工厂(Creator)角色
   工厂方法模式的核心,任何工厂类都必须实现这个接口。

2. 具体工厂( Concrete  Creator)角色
   具体工厂类是抽象工厂的一个实现,负责实例化产品对象。

3. 抽象(Product)角色
   工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

  4. 具体产品(Concrete Product)角色
     工厂方法模式所创建的具体实例对象

三、Demo

抽象工厂(Creator)角色

package com.stark.model;

public interface FruitFactory {
    public Fruit getFruit();
}

具体工厂( Concrete Creator)角色

package com.stark.model;

public class AppleFactory implements FruitFactory {

    @Override
    public Fruit getFruit() {
        return new Apple();
    }

}

抽象(Product)角色

package com.stark.model;

public interface Fruit {

    void get();

}

具体产品(Concrete Product)角色

package com.stark.model;

public class Apple implements Fruit{

    @Override
    public void get() {
        System.out.println("采集苹果...");
    }

}

四、工厂方法模式和简单工厂模式比较

  • 工厂方法模式与简单工厂模式在结构上的不同不是很明显。工厂方
    法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具
    体类上。

  • 工厂方法模式之所以有一个别名叫多态性工厂模式是因为具体工
    厂类都有共同的接口,或者有共同的抽象父类。

  • 当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对
    象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也
    不需要修改客户端,很好的符合了“开放-封闭”原则。而简单工厂
    模式在添加新产品对象后不得不修改工厂方法,扩展性不好。

相关文章

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

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

  • 设计模式-工厂模式

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

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

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

  • 设计模式 工厂模式

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

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

    python 环境 工厂方法模式简介 工厂方法模式Factory Method,又称多态性工厂模式。在工厂方法模式...

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

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

  • 建造模式

    包括:简单工厂、工厂方法、抽象工厂、单例模式、多例模式、建造模式、原始原型模式。 简单工厂:又名静态工厂方法模式,...

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

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

    模式定义 工厂方法模式又称工厂模式,也叫虚拟构造器模式或者多态工厂模式,它属于类创建型模式。在工厂方法模式中,工厂...

  • 五分钟精通设计模式(三)之工厂方法模式

    工厂方法模式分为三种: 普通工厂方法模式、多个工厂方法模式、静态工厂方法模式 废话不多说,下面直奔主题,实现步骤:...

网友评论

    本文标题:工厂方法模式

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