六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 91|回复: 0

设计模式读书笔记之简单工厂模式(Factory)

[复制链接]

升级  66.8%

262

主题

262

主题

262

主题

进士

Rank: 4

积分
834
 楼主| 发表于 2013-1-13 18:26:54 | 显示全部楼层 |阅读模式
这篇文章纯属为了后面的工厂方法和抽象工厂做对比和铺垫, 因为简单工厂就是简单的创造并返回对象, 没有复杂的结构和逻辑.
以最常见的dao为例。User对象有UserDao接口,UserDao有实现类UserOracleDao,UserDB2Dao。
 
特点: 工厂内包含了逻辑判断,根据客户的选择动态实例化相关的类。
优点: 把对象的创建集中放在工厂中.
缺点: ......
//业务模型package designpattern.factory;public class User {//......}//dao接口package designpattern.factory;public interface UserDao {public void insert(User u);public void DeleteById(String id);}//dao实现类package designpattern.factory;public class UserOracleDao implements UserDao{public void DeleteById(String id) {System.out.println("delete an user in oracle db.");}public void insert(User u) {System.out.println("add an user in oracle db.");}}//dao实现类package designpattern.factory;public class UserDB2Dao implements UserDao{public void DeleteById(String id) {System.out.println("delete an user in DB2 db.");}public void insert(User u) {System.out.println("add an user in DB2 db.");}}//dao工厂package designpattern.factory.simple;import designpattern.factory.*;public class UserDaoFactory {public static UserDao createUserDao(String type){if("ORACLE".equals(type)){return new UserOracleDao();}else if("DB2".equals(type)){return new UserDB2Dao();}else{return null;}}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表