2019独角兽企业重金招聘Python工程师标准>>>

/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: DatabaseFactory.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午12:03:46 * @version V1.0*/
public interface DatabaseFactory {public User createUser();public Department createDepartment();}/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: OracleFactory.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午2:15:54 * @version V1.0*/
public class OracleFactory implements DatabaseFactory {@Overridepublic User createUser() {return new OracleUserImp();}@Overridepublic Department createDepartment() {return new OracleDepartmentImp();}}/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: SqlServerFactory.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午2:15:35 * @version V1.0*/
public class SqlServerFactory implements DatabaseFactory {@Overridepublic User createUser() {return new SqlServerUserImp();}@Overridepublic Department createDepartment() {return new SqlServerDepartmentImp();}}package com.wangbiao.design.abstractfactory;/*** * @Title: User.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午12:04:25 * @version V1.0*/
public interface User {public void insertUser();public void selectUser();
}/*** */
package com.wangbiao.design.abstractfactory;import com.wangbiao.design.abstractfactory.User;/*** @Title: SqlServerUserImp.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午2:02:29 * @version V1.0*/
public class SqlServerUserImp implements User {@Overridepublic void insertUser() {System.out.println("insert User using Sql Server ");}@Overridepublic void selectUser() {System.out.println("select User using Sql Server ");}}/*** */
package com.wangbiao.design.abstractfactory;import com.wangbiao.design.abstractfactory.User;/*** @Title: OracleUserImp.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午2:02:49 * @version V1.0*/
public class OracleUserImp implements User {@Overridepublic void insertUser() {System.out.println("insert User using Oracle ");}@Overridepublic void selectUser() {System.out.println("select User using Oracle ");        }}/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: Department.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午12:04:19 * @version V1.0*/
public interface  Department {public void insertDepartment();public void selectDepartment();
}/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: OracleDepartmentImp.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午2:04:50 * @version V1.0*/
public class OracleDepartmentImp implements Department {@Overridepublic void insertDepartment() {System.out.println("insert Department using Oracle ");            }@Overridepublic void selectDepartment() {System.out.println("select Department using Oracle ");            }}/*** */
package com.wangbiao.design.abstractfactory;/*** @Title: Client.java* @Package com.wangbiao.design.abstractfactory* @Description: TODO * @author wangbiao   * @date 2014-9-26 下午12:03:00 * @version V1.0*/
public class Client {public static void main(String[] args) {DatabaseFactory factory_oracel = new OracleFactory();User user_oracel = factory_oracel.createUser();Department depart_oracle = factory_oracel.createDepartment();user_oracel.insertUser();user_oracel.selectUser();depart_oracle.insertDepartment();depart_oracle.selectDepartment();DatabaseFactory factory_sqlserver = new SqlServerFactory();User user_sqlserver = factory_sqlserver.createUser();Department depart_sqlserver = factory_sqlserver.createDepartment();user_sqlserver.insertUser();user_sqlserver.selectUser();depart_sqlserver.insertDepartment();depart_sqlserver.selectDepartment();}}

转载于:https://my.oschina.net/u/617909/blog/318987

java设计模式_抽象工厂相关推荐

  1. 抽象工厂模式设计模式_抽象工厂设计模式解释

    抽象工厂模式设计模式 抽象工厂设计模式是工厂设计模式的另一种形式. 这种模式可以被视为"超级工厂"或"工厂工厂". 抽象工厂设计模式(属于"四人帮&q ...

  2. JAVA设计模式之抽象工厂模式

    本文继续介绍23种设计模式系列之抽象工厂模式. 前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例. 例子背景: 随着客户的要求越来越高,宝马车需 ...

  3. Java设计模式之 抽象工厂模式实验报告书

    目录 Java设计模式之 1 抽象工厂模式实验报告书 1 实验四:抽象工厂模式 2 一.实验目的 2 二.实验内容 2 三.实验步骤 2 3.1抽象工厂模式:电器工厂 2 3.2 car 6 3.3 ...

  4. Java 设计模式之抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...

  5. Java设计模式:抽象工厂

    本文是自己的学习笔记,主要参考以下资料 - 大话设计模式,程杰著,清华大学出版社出版 - 马士兵教育 1.抽象工厂应用场景 2.具体代码 2.1.设计抽象的产品簇 1.抽象工厂应用场景 工厂模式是为了 ...

  6. Java设计模式:抽象工厂模式

    1. 定义 抽象工厂模式,即Abstract Factory Pattern,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类:具体的工厂负责实现具体的产品实例. 抽象工厂模式与工厂 ...

  7. 最简单java设计模式:抽象工厂模式

    前言 在前一篇文章讲解了一下简单工厂模式和工厂方法模式,这篇文章再把抽象工厂模式讲解一下. 一.什么是抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提 ...

  8. JAVA设计模式之抽象工厂模式和代理模式

    目录 一.抽象工厂模式 1.1.模式的定义与特点 1.2.模式的结构 二.代理模式 2.1代理模式的定义与特点 2.2代理模式的结构与实现 一.抽象工厂模式 1.1.模式的定义与特点 抽象工厂(Abs ...

  9. JAVA设计模式之——抽象工厂模式

    文章目录 一.类型 二.定义 三.参与者 四.类图 五.示例 六.适用情况 参考文章 一.类型 创建型模式 二.定义 定义一个接口,用于创建一组相关或有依赖关系的对象,而且无需指定这些对象具体的类. ...

  10. Java设计模式:抽象工厂模式--农场的季节生产对应水果举例

    /*** 农场的抽象.不同季节生产不同的蔬菜和水果.*/ public interface Farm {//不同季节,不同蔬菜和水果.int WINTER = 1; //冬季.int SUMMER = ...

最新文章

  1. python怎么安装第三方库-怎样安装Python的第三方库
  2. php mysql事务处理回滚操作
  3. 梅林安装opkg后安装iperf3_centos7安装完成后没网
  4. C++中placement new操作符(经典)
  5. Windows Server 2008 R2 遗忘管理员密码后的解决方法-by iLync
  6. FAT12中,如何定位大于一个扇区(512B)的文件内容
  7. 在Ubuntu上运行C++程序
  8. poj3254(状压dp入门第一道题,很详细)
  9. 【操作系统】—进程的状态与转换
  10. C#事件-什么是事件
  11. 手机点餐系统概述_自助点餐、自助收银......在餐饮行业有哪些智慧化场景?
  12. java Deque 接口
  13. 计算机本地无法连接失败怎么办,本地连接连不上,小编教你电脑本地连接连不上怎么解决...
  14. 亿阳信通南宁 java笔试_亿阳信通面试笔试题及答案
  15. Python安装包时遇到There was a problem confirming the ssl certificate…的解决办法
  16. ISP Pipeline AWB
  17. 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...
  18. 贴片LED不良品的常见问题分析
  19. 数据库中间件 MyCAT源码分析 —— XA分布式事务
  20. 漫谈微信开放平台一(小程序服务器url设置)

热门文章

  1. atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证
  2. paip.c++ 操作360浏览器总结..
  3. paip.c++ qt 图片处理 检测损坏的图片
  4. paip.输入法编程---增加码表类型
  5. 证券类私募主要需求及核心服务商
  6. 如何构建一个可用的企业级API网关?
  7. (转)金融从业人员的核心竞争力在哪里?
  8. Julia : Array !, [1,2] !=[1 2]'
  9. 阿里云张建锋:如何管理超大规模研发团队?
  10. 【三维路径规划】基于matlab粒子群算法无人机山地三维路径规划【含Matlab源码 1831期】