java设计模式_抽象工厂
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设计模式_抽象工厂相关推荐
- 抽象工厂模式设计模式_抽象工厂设计模式解释
抽象工厂模式设计模式 抽象工厂设计模式是工厂设计模式的另一种形式. 这种模式可以被视为"超级工厂"或"工厂工厂". 抽象工厂设计模式(属于"四人帮&q ...
- JAVA设计模式之抽象工厂模式
本文继续介绍23种设计模式系列之抽象工厂模式. 前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例. 例子背景: 随着客户的要求越来越高,宝马车需 ...
- Java设计模式之 抽象工厂模式实验报告书
目录 Java设计模式之 1 抽象工厂模式实验报告书 1 实验四:抽象工厂模式 2 一.实验目的 2 二.实验内容 2 三.实验步骤 2 3.1抽象工厂模式:电器工厂 2 3.2 car 6 3.3 ...
- Java 设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
- Java设计模式:抽象工厂
本文是自己的学习笔记,主要参考以下资料 - 大话设计模式,程杰著,清华大学出版社出版 - 马士兵教育 1.抽象工厂应用场景 2.具体代码 2.1.设计抽象的产品簇 1.抽象工厂应用场景 工厂模式是为了 ...
- Java设计模式:抽象工厂模式
1. 定义 抽象工厂模式,即Abstract Factory Pattern,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类:具体的工厂负责实现具体的产品实例. 抽象工厂模式与工厂 ...
- 最简单java设计模式:抽象工厂模式
前言 在前一篇文章讲解了一下简单工厂模式和工厂方法模式,这篇文章再把抽象工厂模式讲解一下. 一.什么是抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提 ...
- JAVA设计模式之抽象工厂模式和代理模式
目录 一.抽象工厂模式 1.1.模式的定义与特点 1.2.模式的结构 二.代理模式 2.1代理模式的定义与特点 2.2代理模式的结构与实现 一.抽象工厂模式 1.1.模式的定义与特点 抽象工厂(Abs ...
- JAVA设计模式之——抽象工厂模式
文章目录 一.类型 二.定义 三.参与者 四.类图 五.示例 六.适用情况 参考文章 一.类型 创建型模式 二.定义 定义一个接口,用于创建一组相关或有依赖关系的对象,而且无需指定这些对象具体的类. ...
- Java设计模式:抽象工厂模式--农场的季节生产对应水果举例
/*** 农场的抽象.不同季节生产不同的蔬菜和水果.*/ public interface Farm {//不同季节,不同蔬菜和水果.int WINTER = 1; //冬季.int SUMMER = ...
最新文章
- python怎么安装第三方库-怎样安装Python的第三方库
- php mysql事务处理回滚操作
- 梅林安装opkg后安装iperf3_centos7安装完成后没网
- C++中placement new操作符(经典)
- Windows Server 2008 R2 遗忘管理员密码后的解决方法-by iLync
- FAT12中,如何定位大于一个扇区(512B)的文件内容
- 在Ubuntu上运行C++程序
- poj3254(状压dp入门第一道题,很详细)
- 【操作系统】—进程的状态与转换
- C#事件-什么是事件
- 手机点餐系统概述_自助点餐、自助收银......在餐饮行业有哪些智慧化场景?
- java Deque 接口
- 计算机本地无法连接失败怎么办,本地连接连不上,小编教你电脑本地连接连不上怎么解决...
- 亿阳信通南宁 java笔试_亿阳信通面试笔试题及答案
- Python安装包时遇到There was a problem confirming the ssl certificate…的解决办法
- ISP Pipeline AWB
- 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...
- 贴片LED不良品的常见问题分析
- 数据库中间件 MyCAT源码分析 —— XA分布式事务
- 漫谈微信开放平台一(小程序服务器url设置)
热门文章
- atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证
- paip.c++ 操作360浏览器总结..
- paip.c++ qt 图片处理 检测损坏的图片
- paip.输入法编程---增加码表类型
- 证券类私募主要需求及核心服务商
- 如何构建一个可用的企业级API网关?
- (转)金融从业人员的核心竞争力在哪里?
- Julia : Array !, [1,2] !=[1 2]'
- 阿里云张建锋:如何管理超大规模研发团队?
- 【三维路径规划】基于matlab粒子群算法无人机山地三维路径规划【含Matlab源码 1831期】