设计模式--工厂模式
2017-06-03 15:00
162 查看
工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。
Define an interface for creating an object,but let subclasses decide which class toinstantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的
接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)
来看一个比较实用的通用源码
//抽象产品类 public abstract class Product { //产品类的公共方法 public void method1(){ //业务逻辑处理 } //抽象方法 public abstract void method2(); } //具体产品类,具体的产品类可以有多个,都继承于抽象产品类 public class ConcreteProduct1 extends Product { public void method2() { //业务逻辑处理 } } public class ConcreteProduct2 extends Product { public void method2() { //业务逻辑处理 } } //抽象工厂类负责定义产品对象的产生 public abstract class Creator { /* * 创建一个产品对象,其输入参数类型可以自行设置 * 通常为String、Enum、Class等,当然也可以为空 */ public abstract <T extends Product> T createProduct(Class<T> c); } //具体如何产生一个产品的对象,是由具体的工厂类实现的 public class ConcreteCreator extends Creator { public <T extends Product> T createProduct(Class<T> c){ Product product=null; try { product = (Product)Class.forName(c.getName()).newInstance(); } catch (Exception e) { //异常处理 } return (T)product; } } //场景类的调用方法 public class Client { public static void main(String[] args) { Creator creator = new ConcreteCreator(); Product product = creator.createProduct(ConcreteProduct1.class); /* * 继续业务处理 */ } }
优缺点
优点:1、扩展性好
2、屏蔽产品类
3、工厂方法模式是典型的解耦框架
相关文章推荐
- JAVA设计模式之工厂模式
- 设计模式——三大工厂模式
- Java设计模式(三—四)----工厂模式
- 设计模式--简单工厂模式
- Java 设计模式之工厂
- 设计模式之工厂方法模式
- 设计模式之工厂模式
- 设计模式之桥接与工厂模式的简单书写
- 设计模式之四:工厂模式(简单工厂、工厂方法、抽象工厂)
- 小菜学设计模式 工厂设计模式 Simple Factory Pattern
- java设计模式,工厂模式
- 设计模式之简单工厂模式
- 设计模式之五工厂方法模式
- 设计模式(一):简单工厂模式
- 工厂设计模式
- Head First 设计模式学习笔记(4)---工厂模式
- 自己对设计模式的理解:工厂模式和单例模式
- .net 设计模式之工厂模式
- 设计模式-旧话重提之类工厂的使用
- 设计模式之【工厂模式】