浅析JAVA设计模式之工厂模式

Posted yangykaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析JAVA设计模式之工厂模式相关的知识,希望对你有一定的参考价值。

1 工厂方法模式简单介绍

        工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这样的模式中,核心工厂不再是一个详细的类。而是一个抽象工厂,提供详细工厂实现的接口,详细创建产品交由子工厂去做,抽象工厂不涉及不论什么产品被实例化的细节。

而不同等级的产品。就相应一个不同等级的工厂,例如以下图。

技术分享

1

1.1工厂方法模式(多态性工厂模式):

      工厂方法模式有四个角色: 1. 抽象产品接口 2. 详细产品类 3. 抽象工厂接口 4.详细工厂类

1.2工厂方法的实现(建一个factroyMethod包,全部程序都放在该包下):

(1)首先建一个抽象产品接口(Computer.java)。

package factroyMethod;
public interface Computer {
	public void run();
}

(2)建两个详细产品类(Dell.javaLenovo.java)。须要实现Computer接口。

package factroyMethod;
public class Dell implements Computer {
	public void run() {
		System.out.println("戴尔电脑执行了");
	}
}

package factroyMethod;
public class Lenovo implements Computer {
	public void run() {
		System.out.println("联想电脑执行了");
	}
}

(3)建一个抽象工厂接口(ComputerFactory.java)。

package factroyMethod;
public interface ComputerFactory {
	public Computer makeComputer();
}

(4)建两个个详细工厂类(DellComputerFactory.java、LenovoComputerFactory.java)。

package factroyMethod;
public class DellComputerFactory implements ComputerFactory {
	public Computer makeComputer(){
		return new Dell();
}
}
package factroyMethod;
public class LenovoComputerFactory implements ComputerFactory {
	public Computer makeComputer(){
		return new Lenovo();
}
}

 (5)建一个client程序(TestFactroyMethod.java)測试。

package factroyMethod;
public class TestFactroyMethod {
	public static void main(String []args)throws Exception{
		ComputerFactory computerFactory=
			new DellComputerFactory();
		Computer computer= computerFactory.makeComputer();
		computer.run();
	}
}

执行输出:

戴尔电脑执行了

 

      从输出能够看出,依据须要生成的详细产品。调用相应的子工厂。即使产品添加了种类,仅仅要实现相应的工厂。而不须要改动工厂的源码,工厂的登记相应着产品的等级,改进了简单工厂模式的缺点。

(7)最后,我们再看一下工厂方法模式的UML图。

技术分享


图1.1 工厂方法模式


推荐文章:

浅析JAVA设计模式之工厂模式(一)

http://blog.csdn.net/minidrupal/article/details/38323341


Author: Vicky
Introduction:
教育工作者

Sign:
前事不忘。后事之师



 








以上是关于浅析JAVA设计模式之工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

浅析设计模式——创建型模式之Abstract-Factory(抽象工厂模式)

浅析设计模式——创建型模式之simple-factory(简单工厂方法,非设计模式)

浅析设计模式1 —— 工厂模式

浅析设计模式1 —— 工厂模式

设计模式之单例模式

Java代码实现设计模式之工厂模式