工厂方法模式(Factory Method)

转载 2016年08月29日 20:47:44

工厂方法模式(Factory Method)

定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。

类图:

这里写图片描述

1.很多工厂都有一些相同的行为,比如汽车工厂。我们需要抽象这些相同的行为成接口,每个工厂都实现这个接口。

public interface IFactory {

    public void createProduct();
}

2.生产相同的产品每个工厂所使用的方法可能不同,所以具体如何生产产品由具体工厂实现。

public class Factory implements IFactory {

    @Override
    public void createProduct() {

    }
}

工厂方法模式(Factory Method)–总结

工厂模式两要点:

  • 1.工厂接口是工厂方法模式的核心,与调用者直接交互用来提供产品。

  • 2.工厂实现决定如何实例化产品,是实现扩展的途径,需要有多少种产品,就需要有多少个具体的工厂实现。

适用场景:

  • 1.在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。

  • 2.工厂模式是一种典型的解耦模式,迪米特法则在工厂模式中表现的尤为明显。假如调用者自己组装产品需要增加依赖关系时,可以考虑使用工厂模式。将会大大降低对象之间的耦合度。

  • 3.当需要系统有比较好的扩展性时,可以考虑工厂模式,不同的产品用不同的实现工厂来组装。

Test:

package com.qbz.test;

//汽车工厂
interface CarFactory {
    void productCar();
}

// 保时捷工厂
class PorscheFactory implements CarFactory {
    @Override
    public void productCar() {
        System.out.println("生产保时捷汽车");
    }
}

// 拖拉机工厂
class TractorFactory implements CarFactory {
    @Override
    public void productCar() {
        System.out.println("生产拖拉机");
    }
}

// 奔驰汽车工厂
class BenzFactory implements CarFactory {
    @Override
    public void productCar() {
        System.out.println("生产奔驰汽车");
    }
}

public class FactoryMethod {

    public static void main(String[] args) {
        // 保时捷工厂生产保时捷
        CarFactory pf = new PorscheFactory();
        pf.productCar();
        // 拖拉机工厂生产拖拉机
        CarFactory tf = new TractorFactory();
        tf.productCar();
        // 奔驰工厂生产奔驰
        CarFactory bf = new BenzFactory();
        bf.productCar();
    }

}

输出:

生产保时捷汽车
生产拖拉机
生产奔驰汽车

1、工厂方法模式(Factory Method)

1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图: 举例如下:(我们举一个发送...
  • mixiu888
  • mixiu888
  • 2017年12月12日 08:08
  • 51570

工厂方法模式【Factory Method Pattern】

女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了。这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空...

工厂方法模式(Factory Method)

工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。           工厂方法模式实现时,客户端需要决定实例...
  • fly_yr
  • fly_yr
  • 2013年01月28日 14:53
  • 2677

工厂方法模式(Factory Method)

1  场景问题 1.1  导出数据的应用框架         考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据的导出方式,并真正执行数据导出。         在一些实...

(Factory Method)工厂方法模式的Java实现

原文:http://haolloyin.blog.51cto.com/1177454/332576/ 工厂方法模式(Factory Method):定义一个用于创建对象的接口IFactory...

1、工厂方法模式(Factory Method)

工厂方法模式工厂方法模式分为三种: 1、普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 2、多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符...

(工厂方法模式)Factory Method

Factory Method是创建 的主要思想是使一个类的实例化延迟到其子类。
  • fcunren
  • fcunren
  • 2014年08月25日 15:06
  • 294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工厂方法模式(Factory Method)
举报原因:
原因补充:

(最多只允许输入30个字)