我现在在做一个分类信息的一个系统
我按照 <<工厂方法>> 设计模式 抽象的 info类  (GenericInfo,HouseInfo,JobInfo,TradeInfo 都是 Info 类的子类) InfoDAO接口
(GenericInfoDAOImp,HouseInfoDAOImp,JobInfoDAOImp,TradeInfoDAOImp 实现InfoDAO接口)我觉的设计很完美了,可当知道一个infoId 的时候我不知道到底用哪个具体的DAOImp类去
到数据库查找信息呢晕了 晕了,请高手指教更好的设计模式

解决方案 »

  1.   

    抽象的 info类  
    GenericInfo(一般的信息),HouseInfo(房产类信息),JobInfo(招聘类信息),
    TradeInfo(交易类信息)  都是 Info 类的子类 InfoDAO接口
    (GenericInfoDAOImp,HouseInfoDAOImp,JobInfoDAOImp,TradeInfoDAOImp 实现InfoDAO接口)当我知道一个具体的信息的  Id  我不知道该调用哪个具体DAOImp去数据库查询他的详细信息
      

  2.   

    HouseInfo,JobInfo,TradeInfo和HouseInfoDAO,JobInfoDAO,TradeInfoDAO应该定义各自的接口并由Factory返回
      

  3.   

    系统结构是这样的:
    /**
    * 抽象的工厂
    */
    public interface  InfoFactory
    {
      public Info createNewInfo(Info newInfo);
      
      public Info createInfo(int infoId);
    }
    /**
    * 房产类信息工厂
    */
    public class HouseInfoFactory implements InfoFactory
    {
      public Info createNewInfo(Info newInfo)
      {.......... }
      
      public Info createInfo(int infoId)
      {..........}
    }
    /**
    * 招聘类信息工厂
    */
    public class JobInfoFactoryimplements InfoFactory
    {
      public Info createNewInfo(Info newInfo);
       {.......... }
      public Info createInfo(int infoId)
       {.......... }
    }
    ...........
    我的思路 和 设计是这样的  但家看看设计思路对吗可这样遇到一个问题: 就是在action 控制层 当知道 infoId 时候 不知道到底该用哪个具体
    工厂的 createInfo(int infoId) 方法去得到这个具体的信息//或还有其它模式比较好解决这类系统问题吗 有人提到用 <<观察者模式>>