1  类的实例化不在工厂接口里面实例化, 而是在工厂子类里面实例化

2  使用者无需关注子类工厂里面的逻辑是怎么写的, 只需要知道我调用的这个方法能实 现什么功能, 我不管具体实现

3  需要添加新功能时, 直接添加一个相关工厂类, 进行实现

案例: sqlsession factory 工厂, 可以创建不同数据库的工厂对象, 并不代表真实就是这样写的奥

定义工厂接口, 我不管子工厂怎么实现, 我只需要知道, 我能通过这个方法, 获取到一个我想要的对象, 得到预计的结果

/***  抽象工厂*/
public interface SesssionFactory {/***  这个地方定义的接口即是 ‘工厂方法模式的特征’*  由实现的子类工厂决定创建什么session* @return*/SqlSession getSession();
}
/*** 工厂抽象对象*/
public interface SqlSession {/*** 执行sql* @param sql   sql*/void execute(String sql);
}
SqlSession 对象就是我想要获取的, 我不管他底层是什么连接, 全部由子工厂去具体完成

工厂实例1,

/***  oracle 连接*/
public class OracleSessionFactory implements SesssionFactory{@Overridepublic SqlSession getSession() {return new OracleSessionBean();}
}

工厂实例2

/***  oracle 连接*/
public class MysqlSessionFactory implements SesssionFactory{@Overridepublic SqlSession getSession() {return new MysqlSessionBean();}
}

两个具体工厂对象

/***  工厂对象, oracle 实例*/
public class OracleSessionBean implements SqlSession {@Overridepublic void execute(String sql) {System.out.println("ORACLE 连接, 执行SQL");}
}/***  工厂对象, mysql 实例*/
public class MysqlSessionBean implements SqlSession {@Overridepublic void execute(String sql) {System.out.println("MYSQL 连接, 执行SQL");}
}

执行结果

进阶学习(3.2)Factory Method Pattern 工厂方法模式相关推荐

  1. 设计模式之(Factory method)工厂方法模式

    1.需求 开发一个测试工具专门用于测试手机,测试流程打开分为以下几步:测试开机速度->测试屏幕亮度->测试相机效果.手机有很多种品牌:三星.小米.魅族等等. 2. 分析 不同的手机的测试流 ...

  2. Factory Method(工厂方法)--对象创建型模式

    Factory Method(工厂方法)–对象创建型模式 一.意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method使一个类的实例化延迟到其子类. 二.动机 1.在软 ...

  3. 2.3 Factory Method(工厂方法)

    [返回目录] 我们现在把场景从险象丛生的特工战切换到更为壮观的二战中来,很多人都看过<拯救大兵瑞恩>,这部电影最著名的两场战斗非首和尾莫属,我们就用最后一场战役来举例说明什么是工厂方法吧. ...

  4. 工厂模式(简单工厂模式和工厂方法模式)详解

    简单工厂模式 (Simple Factory Pattern) 工厂方法模式 (Factory Method Pattern) 工厂模式: 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一 ...

  5. Java的二十三种设计模式(单例模式、工厂方法模式、抽象工厂模式)

    从这一块开始,我们详细介绍Java中23种设计模式的概念,应用场景等情况,并结合他们的特点及设计模式的原则进行分析. 创建型模式(5种):用于描述"怎样创建对象",它的主要特点是& ...

  6. 设计模式之——工厂方法模式

    1.工厂方法模式(Factory Method) 工厂方法模式分为三种: 11.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮 ...

  7. Java二十三设计模式之------工厂方法模式

    一.工厂方法模式(Factory Method) 工厂方法模式有三种 1.普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短 ...

  8. java/android 设计模式学习笔记(3)---工厂方法模式

    这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或 ...

  9. .NET设计模式(2): 工厂方法模式

    工厂方法模式(Factory Method Pattern) 介绍: 在 简单工厂模式中,我们提到,工厂方法模式是 简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式.它解决的仍然是软 ...

最新文章

  1. python open encoding为无效的参数_TypeError:“encoding”是无效的关键字参数ex23.py
  2. dedecms教程:搜索页显示条数更改
  3. 【数据竞赛】Kaggle实战之特征工程篇-20大文本特征(上)
  4. Java 数字数组随机数工具类 NumberUtils、ArrayUtils、RandomUtils用法
  5. 消除左递归c++代码_【每日算法Day 85】图解算法:一行代码解决约瑟夫环的变体...
  6. OA(part2)--Outlier Evaluation Techniques
  7. [Lottie动画工具 v3.4.4]
  8. 【iOS】Unlock iPhone to Continue Xcode cannot launch demo1_greating on iPhone because the device is lo
  9. IBM发布人工智能显微镜,可检测海洋水资源
  10. C++基础::为什么不能cout一个string?
  11. 字符串加密解密函数 (C#) (转)
  12. java背包算法_背包算法java版
  13. Linux软件安装的几种方式
  14. 华硕笔记本电脑<举例:华硕玩家国度G752VS>启动时/重装系统后开机会自动进入BIOS界面?
  15. 安卓库-图表库: MPChartView
  16. LaTeX插入参考文献并引用
  17. Unrecoverable error: corrupted cluster config file.
  18. 基于Halcon的高精度圆拟合算法思路
  19. 北京海淀区千峰计算机学校,千锋Java学院-Java培训|Java开发培训|Java工程师培训开拓者...
  20. echarts 北京公交线路-线路效应

热门文章

  1. Ubuntu 搜狗输入法不能输入中文解决
  2. jni返回byte[]
  3. 头文件的包含以及命名空间的引入尽量写在cpp里
  4. 网站服务器c盘在哪找,云服务器c盘在哪儿
  5. webbrowser php,C# WinForm WebBrowser 设置为编辑模式的示例代码
  6. php 管理 mysql 数据库 代码_安装并使用phpMyAdmin管理MySQL数据库_php
  7. 成都计算机职业学院排名,成都计算机职高排名
  8. js如何改变HTML属性,javascript – 如何动态设置HTML lang属性?
  9. fiddler自动响应AutoResponder之正则匹配Rule Editor
  10. Nginx会话保持之nginx-sticky-module模块