一个接口,所有方法都有多个实现类,每个接口都实现了接口的方法子集

时间:2013-04-25 04:15:37

标签: java interface implementation

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

  1. 使用所有方法保持DAOInterface
  2. 实现DAOImpl类,该类实现DAOInterface但在任何方法中都没有任何逻辑
  3. 实现特定于对象的DAOImpl类,这些类扩展DAOImpl并实现DAOInterface,并为所有特定于对象的方法提供实际的DAO实现。
  4. 根据从业务逻辑层传递的某些标识符,更改当前的DAOFactory类,以提供特定于对象的DAOImpl实例。
  5. 我只是想在这个论坛中验证我的方法,看看我是以正确的方式做事还是有更好的解决方案/模式来解决这个问题。

1 个答案:

答案 0 :(得分:1)

我建议在Facade中使用它。主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();
  }
}