1

我正在为一个需要为业务逻辑层开发人员提供所有数据库交互的单一接口的项目重构数据访问层。目前只有一个 DAOImpl 类实现了这个接口,但是这个类已经膨胀到 15000+ 行代码。现在我希望根据它们处理的对象类型将这些方法从这个类移动到多个类中。我想到的方法是-

  1. 保持 DAOInterface 与所有方法原样
  2. 实现一个 DAOImpl 类,该类实现 DAOInterface 但在任何方法中都没有任何逻辑
  3. 实现对象特定的 DAOImpl 类,这些类扩展 DAOImpl 并实现 DAOInterface 并为所有对象特定的方法提供实际的 DAO 实现。
  4. 更改当前的 DAOFactory 类以根据从业务逻辑层传递的某些标识符提供对象特定的 DAOImpl 实例。

我只是想在这个论坛上验证我的方法,看看我是否以正确的方式做事,或者是否有更好的解决方案/模式来解决这个问题。

4

1 回答 1

1

我建议将它采用外观风格。主 DAOImpl 引用了所有将调用委托给适当的 DAO 的子 DAO。

UPD:说明方法

interface DAO {
 void doSomethingUser();
 void doSomethingProject();
}

class DAOImpl {
  private UserDAOImpl;
  private ProjectDAOImpl;
  public void doSomethingUser() {
    UserDAOImpl.doSomethingUser();
  }
  public void doSomethingProject() {
    ProjectDAOImpl.doSomethingProject();
  }
}
于 2013-04-25T05:41:56.930 回答