`

Factory Method Pattern (工厂方法模式)

阅读更多

Factory Method Pattern  (工厂方法模式)

定义: 又称工厂模式,也叫虚拟构造器模式或者多态工厂模式,属于类的创建型模式。在工厂方法模式中,
      父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化
      操作延迟到子类中完成,即由子类来决定究竟该实例化哪一个类。
     
类与对象的关系:
   Product: 产生角色
      定义产品的接口
 
 ConcreteProduct: 真实的产品
      实现接口Product的类
  
 Creator: 工厂角色
      声明工厂方法,返回一个产品
    
 ConcreteCreator: 真实的工厂
      实现FactoryMethod工厂方法,由客户调用,返回一个产品的实例
  
  
  
应用情景:
 1, 类不知道自己要创建哪一个对象
 2, 类用它的子类来指定要创建哪个对象
 3, 客户需要清楚创建了哪一个对象  

 

产生角色

package www.libinxuan.mobile;

//手机接口(产生角色)

public interface Mobile {
	public void call();
}

 

 

真实的产品

package www.libinxuan.mobile;

/**
 * 真实的产品
 * @author Administrator
 *
 */

public class Motorola implements Mobile {

	@Override
	public void call() {
		System.out.println("摩托罗拉手机");
	}

}

 

package www.libinxuan.mobile;

public class Nokia implements Mobile {

	@Override
	public void call() {
		System.out.println("诺基亚手机");

	}

}

 

 

 

工厂角色

package www.libinxuan.mobile;

//手机工厂接口

public interface MobileFactory {
	public Mobile produceMobile();
}

 

 

 

真实的工厂

package www.libinxuan.mobile;

/**
 * 真实的工厂
 * @author Administrator
 *
 */

public class NokiaFactory implements MobileFactory {

	@Override
	public Mobile produceMobile() {
		System.out.print("诺基亚工厂制造了");
		return new Nokia();
	}

}

 

package www.libinxuan.mobile;

/**
 * 真实的工厂
 * @author Administrator
 *
 */

public class MotorolaFactory implements MobileFactory {

	@Override
	public Mobile produceMobile() {
		System.out.print("摩托罗拉工厂制造了");
		return new Motorola();
	}

}

 

 

测试 

package www.libinxuan.mobile;

public class Client {
	public static void main(String[] args){
		MobileFactory mf;
		Mobile m;
		mf = new MotorolaFactory();
		m = mf.produceMobile();
		m.call();
		
		mf = new NokiaFactory();
		m = mf.produceMobile();
		m.call();
	}
}

 


     

 

分享到:
评论

相关推荐

    设计模式之“工厂方法模式[Factory Method Pattern]”

    今天我们要探讨的是设计模式中的一个经典成员——工厂方法模式(Factory Method Pattern)。工厂方法模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。 ### 一、什么是工厂方法模式? 工厂方法模式...

    创建型模式之工厂方法模式(Factory Method Pattern)

    1. 抽象工厂(Abstract Factory):这是工厂方法模式的核心接口,它声明了一组用于创建产品的公共方法。抽象工厂通常为抽象类或接口。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,提供具体的产品实例。...

    Factory Method Pattern.rar【GoF的工厂方法模式(C#源码)】

    它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar

    FactoryMethodPattern.zip

    在"FactoryMethodPattern"的压缩包文件中,我们可以预期包含以下内容: - 示例代码:展示了如何在Swift或Objective-C中实现工厂方法模式。可能包含抽象产品接口、具体产品类、抽象工厂接口和具体工厂类的定义,以及...

    c++-深入浅出讲解一下 “工厂方法模式 (Factory Method)”

    工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪一个具体类。这样,客户端代码就不需要知道具体的类是什么,只需通过工厂接口获取对象。 工厂...

    05_FactoryMethodPattern 雷锋工厂方法

    NULL 博文链接:https://rich8w.iteye.com/blog/464344

    【Java设计模式-源码】Factory Method Pattern in Java: 使用多态制造增强灵活性

    学习Java中的工厂方法模式,探索示例、用途、好处以及它如何增强代码的灵活性和可维护性。 **二、别名** * Virtual Constructor **三、Factory Method设计模式的意图** 使用工厂方法模式定义一个用于创建对象的...

    工厂方法模式源文件

    通过阅读和分析源文件`FactoryMethod`,我们可以深入理解工厂方法模式的实现细节,例如工厂类如何创建产品对象,产品对象如何通过接口或抽象类进行交互等。这对于学习和应用设计模式,以及提高代码的可维护性和扩展...

    [创建型模式] head first 设计模式之工厂模式(Factory)

    在实际应用中,工厂方法模式有以下优点: - **封装变化**:当需要添加新产品或更换产品实现时,只需要增加新的具体产品类和对应的具体工厂类,无须修改原有代码,符合开闭原则。 - **多态性**:通过工厂方法,客户端...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    Factory_Method&&Simple_Factory

    工厂方法模式(Factory Method Pattern)是设计模式中的创建型模式之一,主要解决对象创建过程中的复杂性问题。在软件工程中,当一个类不知道它所必须创建的对象的类的时候,它就不会实例化对象,而是使用一个工厂...

    简单工厂模式,工厂方法模式,抽象工厂模式

    工厂方法模式(Factory Method Pattern)是面向对象的设计模式,它定义了一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。这样,工厂方法将实例化操作推迟到子类中,实现了对类的抽象,提高了代码的...

    用工厂方法模式重构简易计算器 源代码+实验报告

    工厂方法模式(Factory Method Pattern)是面向对象设计模式的一种,它在实际开发中有着广泛的应用。本项目通过工厂方法模式重构简易计算器,旨在展示这种模式在实现基本计算功能时的优势。 首先,我们要理解工厂...

    软件设计之工厂方法模式,源代码

    工厂方法模式(Factory Method Pattern)是一种常用的面向对象设计模式,属于创建型模式之一。它提供了一种创建对象的最佳方式。在工厂方法模式中,我们定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。...

    工厂方法模式和抽象工厂模式

    在软件设计模式中,工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)是两种常用的创建型设计模式,它们都属于“工厂”家族,但有着不同的应用场景和目标。 工厂方法模式的核心...

    工厂方法模式源代码

    工厂方法模式(Factory Method Pattern)是设计模式中的创建型模式之一,它定义了一个创建对象的接口,但允许子类决定实例化哪一个类。这个模式使类的实例化延迟到了子类,也就是所谓的“多态性工厂”。在Java中,...

    简单工厂模式和工厂方法模式

    回到提供的代码文件,`FactoryMethodPattern.cpp`和`FactoryMethodPattern.h`可能是实现工厂方法模式的C++代码。通常,`.cpp`文件包含具体的函数实现,而`.h`文件则定义了相关的类和接口。在这些文件中,我们可能会...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...

    IOS 工厂方法模式代码Demo

    在“DesignPattern_FactoryMethodPattern”这个压缩包中,我们可以预期找到以下组成部分: 1. **抽象工厂(AbstractFactory)**:这是一个协议或抽象类,定义了创建对象的接口。在Objective-C中,通常会用到`@...

Global site tag (gtag.js) - Google Analytics