我们有一个典型的n层java应用程序,我注意到我们的数据访问层有DAO类型为FooDAO和FooDAOImpl。我想要证明两者的必要性,这是我的分析。
有了这些观点,我觉得真正需要一个单独的FooDAO和FooDAOImpl,其中一个简单的FooDAO就足够了。请随意更正我提到的任何要点。
提前致谢!
答案 0 :(得分:2)
我和Mockito一起尝试了#3,它能够在没有接口的情况下模拟POJO。根据针对#1和#2提到的论点,我倾向于暂不使用单独的DAO和DAOImpl。随意添加其他比较点。
答案 1 :(得分:1)
我看到第四个原因:
根据团队的情况,软件的预期寿命或未来预期的变化量,即使只有一个实现,也要尽可能地隐藏。
答案 2 :(得分:0)
我会说具有FooDAO
接口和单个实现FooDAOImpl
通常是一种反模式。更简单的解决方案(没有DAO的单独接口)是更可取的,除非你有其他坚实的理由 - 这似乎不是这里的情况。
就个人而言,我会更进一步说,拥有DAO并不是最好的选择。我更喜欢在ORM API(如Hibernate或JPA)之上实现单个持久性Facade类。不过,也许iBATIS的水平太低了。