一.工厂模式,以数据库的业务逻辑为简单例子,里面有很多不合理的地方,目的是为了阐述对工厂模式的理解。
1.声明接口BaseDAO
/**
**<p>工厂接口</p>
**作者:
**Blong:http://www.blogjava.net/1504
**E-mail:yyk1504@163.com
**QQ:251218333
**<p>2008-12-16 下午02:08:15</p>
*/
package cn.com.model.factory;
import java.sql.Connection;
public interface BaseDAO
{
/**数据库的插入方法*/
public void save();
/**数据库的更新方法*/
public void update();
/**数据库的删除方法*/
public void delete();
}
2.MYSQL具体实现MysqlDAO
*<p>Mysql数据库实现业务逻辑类</p>
*作者:
*Blong:http://www.blogjava.net/1504
*E-mail:yyk1504@163.com
*QQ:251218333
*<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;
import java.sql.Connection;
import java.sql.DriverManager;
public class MysqlDAO implements BaseDAO
{
public void delete()
{
/**
*<p>此方法的功能介绍</p>
*delete
*MysqlDao
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:16:27</p>
*/
System.out.println("Mysql在此处实现删除....");
}
public void save()
{
/**
*<p>此方法的功能介绍</p>
*save
*MysqlDao
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:16:27</p>
*/
System.out.println("Mysql在此处实现保存....");
}
public void update()
{
/**
*<p>此方法的功能介绍</p>
*update
*MysqlDao
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:16:27</p>
*/
System.out.println("Mysql在此处实现更新....");
}
}
3.SQL2000具体实现类
/**
*<p>MsSql2000数据库实现业务逻辑类</p>
*作者:
*Blong:http://www.blogjava.net/1504
*E-mail:yyk1504@163.com
*QQ:251218333
*<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;
import java.sql.Connection;
import java.sql.DriverManager;
public class MsSql2000DAO implements BaseDAO
{
public void delete()
{
/**
*<p>此方法的功能介绍</p>
*delete
*MsSql2000DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:21:04</p>
*/
System.out.println("MsSql2000在此处实现删除....");
}
public void save()
{
/**
*<p>此方法的功能介绍</p>
*save
*MsSql2000DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:21:04</p>
*/
System.out.println("MsSql2000在此处实现保存....");
}
public void update()
{
/**
*<p>此方法的功能介绍</p>
*update
*MsSql2000DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:21:04</p>
*/
System.out.println("MsSql2000在此处实现更新....");
}
}
4.SQL2005具体实现类
/**
*<p>MsSql2005数据库实现业务逻辑类</p>
*作者:
*Blong:http://www.blogjava.net/1504
*E-mail:yyk1504@163.com
*QQ:251218333
*<p>2008 2008-12-16 </p>
*/
package cn.com.model.factory;
import java.sql.Connection;
import java.sql.DriverManager;
public class MsSql2005DAO implements BaseDAO
{
public void delete()
{
/**
*<p>此方法的功能介绍</p>
*delete
*MsSql2005DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:23:38</p>
*/
System.out.println("MsSql2005在此处实现删除....");
}
public void save() {
/**
*<p>此方法的功能介绍</p>
*save
*MsSql2005DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:23:38</p>
*/
System.out.println("MsSql2005在此处实现保存....");
}
public void update()
{
/**
*<p>此方法的功能介绍</p>
*update
*MsSql2005DAO
*
*Author:ASUS_1
<p>2008 2008-12-16 下午02:23:38</p>
*/
System.out.println("MsSql2005在此处实现更新....");
}
}
5.ORACLE具体实现类
/**
**<p>Oracle数据库实现业务逻辑类</p>
**作者:
**Blong:http://www.blogjava.net/1504
**E-mail:yyk1504@163.com
**QQ:251218333
**<p>2008-12-16 下午02:11:59</p>
*/
package cn.com.model.factory;
import java.sql.Connection;
import java.sql.DriverManager;
public class OracleDAO implements BaseDAO
{
public void delete()
{
/**
*<p>此方法的功能介绍</p>
*delete
*OracleDao
*
*Author:ASUS_1
*<p>2008 2008-12-16 下午02:12:59</p>
*/
System.out.println("Oracle在此处实现删除....");
}
public void save()
{
/**
*<p>此方法的功能介绍</p>
*save
*OracleDao
*
*Author:ASUS_1
*<p>2008 2008-12-16 下午02:12:59</p>
*/
System.out.println("Oracle在此处实现保存....");
}
public void update()
{
/**
*<p>此方法的功能介绍</p>
*update
*OracleDao
*
*Author:ASUS_1
*<p>2008 2008-12-16 下午02:12:59</p>
*/
System.out.println("Oracle在此处实现更新....");
}
}
6.工厂类
/**
*<p>数据库业务工厂</p>
*作者:
*Blong:http://www.blogjava.net/1504
*E-mail:yyk1504@163.com
*QQ:251218333
*<p>2008-12-16 </p>
*/
package cn.com.model.factory;
import cn.com.model.factory.*;
public class DaoFactory
{
public BaseDAO createFactory(String type)
{
if ("Mysql".equals(type))
{
return new MysqlDAO();
}
else
if ("MsSql2000".equals(type))
{
return new MsSql2000DAO();
}
else
if ("MsSql2005".equals(type))
{
return new MsSql2005DAO();
}
else
if ("Oracle".equals(type))
{
return new OracleDAO();
}
return null;
}
public static void main(String[] args)
{
DaoFactory creator = new DaoFactory();
BaseDAO mysqlDAO=creator.createFactory("Mysql");
mysqlDAO.save();
mysqlDAO.update();
mysqlDAO.delete();
System.out.println("---------------------------------");
BaseDAO msSql2000DAO=creator.createProduct("MsSql2000");
msSql2000DAO.save();
msSql2000DAO.update();
msSql2000DAO.delete();
System.out.println("---------------------------------");
BaseDAO msSql2005DAO=creator.createProduct("MsSql2005");
msSql2005DAO.save();
msSql2005DAO.update();
msSql2005DAO.delete();
System.out.println("---------------------------------");
BaseDAO oracleDAO=creator.createProduct("Oracle");
oracleDAO.save();
oracleDAO.update();
oracleDAO.delete();
}
}
分享到:
相关推荐
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。 单态模式的定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有...
Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...
设计模式综合应用实例 设计模式综合应用实例 多人联机射击游戏 多人联机射击游戏中的设计模式应用(一) 多人联机射击游戏中的设计模式应用(二) 数据库同步系统 设计模式综合实例分析之数据库同步系统(一) 设计...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 ...
1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 描述对象...
设计模式识别参与的类和实例、它们的角色和协作以及职责的分配。 每个设计模式都专注于特定的面向对象设计问题或问题。 它描述了它何时适用,是否可以考虑到其他设计约束,以及它使用的后果和权衡。 讨论的设计模式...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
设计模式 创造型 单身人士 断言整个应用程序将具有某个对象的单个实例,并提供对该对象的全局访问点。 对对象的访问通过“GetInstance”方法。 工厂方法 定义允许创建对象的不同实现的接口(使用方法“Create”)。 ...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
031506_【第15章:Java反射机制】_工厂设计模式笔记.pdf 031601_【第16章:Annotation】_系统内建Annotation笔记.pdf 031602_【第16章:Annotation】_自定义Annotation笔记.pdf 031603_【第16章:Annotation】_反射...
常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18...
Channel选择器工厂与轮询算法及注册底层实现 72_Netty线程模型深度解读与架构设计原则 73_Netty底层架构系统总结与应用实践 74_Netty对于异步读写操作的架构思想与观察者模式的重要应用 75_适配器模式与模板方法模式...
第1章 初识Java 3 1.1 Java简介 3 1.1.1 Java的不同平台 3 1.1.2 Java发展的历程 3 1.1.3 Java的特点 4 1.2 安装开发工具包 5 1.2.1 下载JDK 5 1.2.2 安装JDK 6 1.2.3 安装后Java目录的解读 7 1.3...
1123创建型模式中的抽象工厂模式及应用 113对象类的高级概念 1131抽象类、 参数对象类、型与实现对象类 1132接口 1133版型 114组件、 包和结点 1141组件 1142包和包图 1143结点 115习题 第12...
57_Reactor模式透彻理解及其在Netty中的应用 58_Reactor模式与Netty之间的关系详解 59_Acceptor与Dispatcher角色分析 60_Netty的自适应缓冲区分配策略与堆外内存创建方式 61_Reactor模式5大角色彻底分析 62_Reactor...
第57讲:Reactor模式透彻理解及其在Netty中的应用 第58讲:Reactor模式与Netty之间的关系详解 第59讲:Acceptor与Dispatcher角色分析 第60讲:Netty的自适应缓冲区分配策略与堆外内存创建方式 第61讲:Reactor...