Java--用简单工厂来改进抽象工厂(反射)
来源:互联网 发布:网络dt显示d 编辑:程序博客网 时间:2024/05/16 16:07
接上一篇抽象工厂,改进方案去除IFactory、SqlServerFactory和AccessFactory三个工厂类取而代之的是DataAccess类,用一个简单工厂模式来实现。
1、DataAccess类
public class DataAccess {private static final String db = "SqlServer";//private static final String db = "Access";public static IUser createUser(){IUser result = null;switch (db) {case "SqlServer":result = new SqlServerUser();break;case "Access":result = new AccessUser();break;default:break;}return result;}public static IDepartment createDepartment(){IDepartment result = null;switch (db) {case "SqlServer":result = new SqlServerDepartment();break;case "Access":result = new AccessDepartment();break;default:break;}return result;}}2、测试
public class Test {public static void main(String[] args) {User user = new User();Department department = new Department();IUser iu = DataAccess.createUser();iu.insert(user);iu.getUser(1);IDepartment id = DataAccess.createDepartment();id.insert(department);id.getDepartment(1);}}3、使用反射机制再优化
public class DataAccess {// 包名private static final String AccemblyName = "com.test.factory.abstractmethod";// 可以替换成Accessprivate static final String db = "Access";public static IUser createUser(){IUser result = null;String className = AccemblyName + "." + db +"User";Class<?> user = null;try {user = Class.forName(className);result = (IUser)user.newInstance();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return result;}public static IDepartment createDepartment(){IDepartment result = null;String className = AccemblyName + "." + db +"Department";Class<?> department = null;try {department = Class.forName(className);result = (IDepartment)department.newInstance();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return result;}}
0 0
- Java--用简单工厂来改进抽象工厂(反射)
- 简单工厂模式+反射来改进抽象工厂模式
- 结合Java反射用简单工厂模式改进抽象工厂模式
- 使用Java反射跟简单工厂模式改进抽象工厂模式
- Java工厂模式(简单工厂、工厂方法、抽象工厂)
- 设计模式之用反射机制改进的抽象工厂
- 持续改进,抽象工厂也反射
- java工厂模式-简单工厂,工厂方法,抽象工厂模式
- C#--使用反射改进简单工厂
- 简单工厂,工厂,抽象工厂
- 简单工厂、工厂、抽象工厂
- 简单工厂、工厂、抽象工厂
- Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)
- Java设计模式之工厂模式(简单工厂、工厂方法、抽象工厂)
- java学习之工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- Java设计模式——工厂模式(简单工厂、工厂方法 、抽象工厂 )
- 抽象工厂+反射(一)
- 工厂模式(简单工厂、工厂和抽象工厂) C++
- Hibernate关系映射总结
- mina入门教程
- 黑马程序员_集合类_迭代器
- 【cocos2d-x官方文档】 从v1.x到2.x的API更改
- PIC单片机开发环境搭建_MPLAB X IDE安装步骤
- Java--用简单工厂来改进抽象工厂(反射)
- iOS 开发者企业计划发布流程
- DOM、JDOM、DOM4J的区别
- 腰果
- 常用的webservice接口
- Java 内部类种类及使用解析
- IOS NSUserDefaults 讲解 用法
- 数据库sql 语言一般操作示例
- 安装erlang] 解决方法 an not link the wx driver, wx will NOT be