Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112735
  • 博文数量: 19
  • 博客积分: 419
  • 博客等级: 一等列兵
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-03 20:13
文章分类

全部博文(19)

文章存档

2012年(6)

2011年(13)

分类: Java

2011-11-09 15:56:00

1.静态调用函数
package com;
public class Test {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  DaoFactory creator = new DaoFactory();
  
  BaseDAO msyqlDAO = creator.creatFactory("Mysql");
  
  msyqlDAO.save();
  msyqlDAO.update();
  msyqlDAO.delete();
  
  System.out.println("=========Mysql=========");
  
  BaseDAO mssql2000dao = creator.creatFactory("MsSql2000");
  
  mssql2000dao.save();
  mssql2000dao.update();
  mssql2000dao.delete();
  
  System.out.println("===========MsSql2000============");
  
  
  
 }
}
2.工程类

package com;

public class DaoFactory {

 public BaseDAO creatFactory(String type)
 {
  if("Mysql".equals(type))
  {
   return new MysqlDAO();
  }
  else if("MsSql2000".equals(type))
  {
   return new MsSql2000DAO();
  }

  return null;
  
 }
}

3.产品interface接口

package com;

public interface BaseDAO {

 /**
  * 保存数据
  */
 public void save();
 
 /**
  * 删除数据
  */
 public void delete();
 
 /**
  * 更新数据
  */
 public void update();
}
4.产品实现类

package com;

public class MsSql2000DAO implements BaseDAO {

 @Override
 public void save() {
  // TODO Auto-generated method stub
  System.out.println("MsSql200保存数据");
 }

 @Override
 public void delete() {
  // TODO Auto-generated method stub

  System.out.println("MsSql200删除数据");
 }

 @Override
 public void update() {
  // TODO Auto-generated method stub

  System.out.println("MsSql200更新数据");
 }

}

package com;

public class MysqlDAO implements BaseDAO {

 @Override
 public void save() {
  // TODO Auto-generated method stub

  System.out.println("Mysql保存数据");
 }

 @Override
 public void delete() {
  // TODO Auto-generated method stub

  System.out.println("Mysql删除数据");
 }

 @Override
 public void update() {
  // TODO Auto-generated method stub

  System.out.println("Mysql更新数据");
 }

}

 

5.总结

(1)所谓工厂模式即在构造一个工厂类,该类的一个方法来实例化具体产品(有点像switch-case模式),这些产品一般具有相同的方法,比如实现interface和abstract类

(2)应用场景:批量处理具有相似方法的类和对象的情况

 


 


 

 
阅读(1685) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~