标签:font 简单工厂 工厂模式 设计模式 src blog hba ros 细节
工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这样的模式中,核心工厂不再是一个详细的类。而是一个抽象工厂,提供详细工厂实现的接口,详细创建产品交由子工厂去做,抽象工厂不涉及不论什么产品被实例化的细节。
而不同等级的产品。就相应一个不同等级的工厂,例如以下图。
图1
工厂方法模式有四个角色: 1. 抽象产品接口 2. 详细产品类 3. 抽象工厂接口 4.详细工厂类。
(1)首先建一个抽象产品接口(Computer.java)。
package factroyMethod; public interface Computer { public void run(); }
(2)建两个详细产品类(Dell.java、Lenovo.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: 前事不忘。后事之师
标签:font 简单工厂 工厂模式 设计模式 src blog hba ros 细节
原文地址:http://www.cnblogs.com/yangykaifa/p/6991968.html