设计模式读书笔记之工厂方法模式(Factory method)

来源:互联网 发布:linux系统启动流程 编辑:程序博客网 时间:2024/05/18 02:38

拿前面的简单工厂的例子作案例.把简单工厂改造成工厂方法.

[java] view plain copy
  1. //工厂接口  
  2. package designpattern.factory.factorymethod;  
  3. import designpattern.factory.*;  
  4. public interface IFactory {  
  5.     public UserDao createUserDao();  
  6. }  
  7. //DB2Dao工厂   
  8. package designpattern.factory.factorymethod;  
  9. import designpattern.factory.*;  
  10. public class DB2DaoFactory implements IFactory{  
  11.     public UserDao createUserDao() {  
  12.         return new UserDB2Dao();  
  13.     }  
  14. }  
  15. //OracleDao工厂  
  16. package designpattern.factory.factorymethod;  
  17. import designpattern.factory.*;  
  18. public class OracleDaoFactory implements IFactory{  
  19.     public UserDao createUserDao() {  
  20.         return new UserOracleDao();  
  21.     }  
  22. }  
  23. //test case  
  24. package designpattern.factory.factorymethod;  
  25. import designpattern.factory.*;  
  26. public class Test {  
  27.     public static void main(String[] args) {  
  28.         IFactory f = new DB2DaoFactory();  
  29.         UserDao userDao = f.createUserDao();  
  30.         userDao.insert(new User());  
  31.         userDao.DeleteById("123456");  
  32.     }  
  33. }  

 

特点: 有一个工厂序列, 工厂序列中各个工厂负责创建具体的对象.

与简单工厂的区别: 工厂方法把对象的实例化推迟到子类中. 把选择权交给客户代码来做

0 0
原创粉丝点击