设计模式-抽象工厂模式
来源:互联网 发布:梯度下降算法 matlab 编辑:程序博客网 时间:2024/06/08 18:14
10、抽象工厂模式(Abstract Factory):提供了一个创建一系列相关或相互依赖对象的接口
而无需指定它们具体的类。它最大的好处是易于交换产品系列,例如数据库的更换,开发了一个项目
有的客户要使用MySql,有的可能要使用Oracle。这种情况下我们就可以使用抽象工厂模式
/**
* 抽象工厂类
*/
public interface IFactory {
IUser createUser();
IDepartment creatteDepartment();
}
/**
* Project Name:pattern_01
* File Name:MySqlFactory.java
* Package Name:org.jiajun.pattern.test10
* Date:2017年4月27日下午5:00:48
* Copyright @ 2010-2017 河南乐享教育科技股份有限公司 All Rights Reserved.
*
*/
/**
* MySql数据工厂
*/
public class MySqlFactory implements IFactory {
@Override
public IUser createUser() {
return new MySqlUser();
}
@Override
public IDepartment creatteDepartment() {
return new MySqlDepartment();
}
}
/**
* 用户数据访问接口
*/
public interface IUser {
void insert(User e);
User getUser(int id);
}
//测试用例
public class TestCase {
public static void main(String[] args) {
IFactory factory = new MySqlFactory();
factory.createUser().insert(null);
}
}
而无需指定它们具体的类。它最大的好处是易于交换产品系列,例如数据库的更换,开发了一个项目
有的客户要使用MySql,有的可能要使用Oracle。这种情况下我们就可以使用抽象工厂模式
/**
* 抽象工厂类
*/
public interface IFactory {
IUser createUser();
IDepartment creatteDepartment();
}
/**
* Project Name:pattern_01
* File Name:MySqlFactory.java
* Package Name:org.jiajun.pattern.test10
* Date:2017年4月27日下午5:00:48
* Copyright @ 2010-2017 河南乐享教育科技股份有限公司 All Rights Reserved.
*
*/
/**
* MySql数据工厂
*/
public class MySqlFactory implements IFactory {
@Override
public IUser createUser() {
return new MySqlUser();
}
@Override
public IDepartment creatteDepartment() {
return new MySqlDepartment();
}
}
/**
* 用户数据访问接口
*/
public interface IUser {
void insert(User e);
User getUser(int id);
}
//测试用例
public class TestCase {
public static void main(String[] args) {
IFactory factory = new MySqlFactory();
factory.createUser().insert(null);
}
}
0 0
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- 设计模式-抽象工厂
- 设计模式--抽象工厂
- 一句话说明策略模式
- C++ 总结几种结构体初始化的方法
- Android--SQLite事务
- bzoj 1101: [POI2007]Zap 莫比乌斯反演
- yii2框架实现文件上传
- 设计模式-抽象工厂模式
- 225. Implement Stack using Queues
- 常用Linux和Oracle命令
- Mysql间隔取数据,实现sqlserver的row_number()函数
- 关于Angular2.0 in-memory-web-api的GET http://localhost:3000/traceur 404 (Not Found)等错误的解决方法之一
- 书单推荐:成为Java顶尖程序员 ,看这11本书就够了
- 文章标题
- LeetCode Given a binary tree, return the postorder traversal of its nodes' values.
- 3年技术小结 我是做android的