设计模式--工厂模式
来源:互联网 发布:全知视角和有限视角 编辑:程序博客网 时间:2024/06/14 01:30
工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。
Define an interface for creating an object,but let subclasses decide which class to
instantiate.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、工厂方法模式是典型的解耦框架
阅读全文
0 0
- 设计模式------工厂模式
- 设计模式------工厂模式
- 设计模式 [ 工厂模式 ]
- 设计模式--工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式 工厂模式
- 设计模式-工厂模式
- 设计模式 -- 工厂模式
- 设计模式-工厂模式
- 设计模式----工厂模式
- 设计模式---工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式---工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式 - 工厂模式
- 整数数组中找出只出现了一次的数
- angularjs中方法执行的一个小tip
- 理解null值和可空类型
- js 中offsetTop、offsetLeft、offsetWidth、offsetHeight详解
- caffe深度学习网络(.prototxt)在线可视化工具:Netscope Editor
- 设计模式--工厂模式
- 多线程-多线程方式3的思路及代码实现:方式3依赖于线程池存在的
- ubuntu16.04下apache部署两个CI网站
- 构造方法的作用
- 人工智能全球化,中国科技企业正在加速布局/智库2861
- 数据模型访问结构
- 100个句子直刷7000单词
- vue实战笔记--基础知识概要
- redis 主从配置