1、作用:在软件系统中,经常面临“一系列相互依赖对象”的创建工作,为了绕过常规对象的创建方式(即用new创建),利用工厂模式,提供一种“封装机制”来减少功能调用程序和“多系列具体对象创建工作”的耦合性。
通常程序员在编写代码时,需要一个产品(对象)时,都是自己去创建(也就是new一个对象),显然这对于程序员来说很不方便,
我们能不能将创建产品(对象)的工作交给其他事物来做,于是我们就提出了一种创建模式:工厂模式,当然创建模式还有单例模式、原型模式、builder模式。
2、核心思想:实例化具有共同接口的多个类,不同产品(对象)的创建由工厂统一完成。
3、工厂模式分为:简单工厂模式、工厂方法模式和抽象工厂模式。
简单工厂模式的创建步骤:1、定义产品接口类,有若干实现产品接口的具体产品类;2、定义工厂类Factory,用来生成产品类的实例
package com.yt.manager.javamodel.factory; /** * @Description: 产品接口类 * @ClassName: Product * @Project: base-info * @Author: zxf * @Date: 2011-5-25 */ public interface Product { public void toDo(); }
package com.yt.manager.javamodel.factory.impl; import com.yt.manager.javamodel.factory.Product; /** * @Description: 产品一 * @ClassName: ConcreteProduct * @Project: base-info * @Author: zxf * @Date: 2011-5-25 */ public class ConcreteProductOne implements Product { public void toDo(){ System.out.println("product One ........."); } }
package com.yt.manager.javamodel.factory.impl; import com.yt.manager.javamodel.factory.Product; /** * @Description:产品二 * @ClassName: ConcreteProductTwo * @Project: base-info * @Author: zxf * @Date: 2011-5-25 */ public class ConcreteProductTwo implements Product { public void toDo() { System.out.println("product two ........."); } }
package com.yt.manager.javamodel.factory; import com.yt.manager.javamodel.factory.impl.ConcreteProductOne; import com.yt.manager.javamodel.factory.impl.ConcreteProductTwo; /** * @Description: 工厂类 * @ClassName: ConcreteFactory * @Project: base-info * @Author: zxf * @Date: 2011-5-25 */ public class Factory{ public static Product createProduct(String type) { if (type.equals("one")) { return new ConcreteProductOne(); } else if (type.equals("two")) { return new ConcreteProductTwo(); } return null; } }
测试类:
package com.yt.manager.javamodel.factory; /** * 工厂模式的作用:在软件系统中,经常面临“一系列相互依赖对象”的创建工作,为了绕过常规对象的创建方式(即用new创建),利用工厂模式,提供一种“封装机制”来减少功能调用程序和“多系列具体对象创建工作”的耦合性。 * 通常程序员在编写代码时,需要一个产品(对象)时,都是自己去创建(也就是new一个对象),显然这对于程序员来说很不方便, * 我们能不能将创建产品(对象)的工作交给其他事物来做,于是我们就提出了一种创建模式:工厂模式,当然创建模式还有单例模式、原型模式、builder模式。 * 工厂模式的核心思想是:实例化具有共同接口的多个类,不同产品(对象)的创建由工厂统一完成。 * 工厂模式分为:简单工厂模式、工厂方法模式和抽象工厂模式。 * 简单工厂模式的创建步骤:1、定义产品接口类,有若干实现产品接口的具体产品类;2、定义工厂类Factory,用来生成产品类的实例 * @ClassName: Client * @Project: base-info * @Author: zxf * @Date: 2011-5-25 */ public class ClientIndex { public void doSomething(String type) { Product product = Factory.createProduct(type); product.toDo(); } public static void main(String args[]) { ClientIndex client = new ClientIndex(); client.doSomething("two"); } }