问题描述
在AppFuse官方文档 http://appfuse.org/display/APF/Using+Hibernate 中给出了创建一个新model的实例。文档称要建立一个model 名为Person,需要建立相应的 PersonDao接口和PersonDaoHibernate实现。PersonDao 接口定义了方法public List<person> findByLastName(String lastName);PersonDaoHibernate 继承了 GenericDaoHibernate,并实现了PersonDao 接口: public List<person> findByLastName(String lastName) { return getHibernateTemplate().find("from Person where lastName=?", lastName); }为何不直接使用 PersonDaoHibernate ,而要多建一个 PersonDao 接口呢?难道每建一个 model 都要建立相应的3个类吗?太麻烦了。问题补充整明白了,谢谢各位,我想AppFuse这样做,一是代码生成使用mvn appfuse:gen 能够自动化;一是可以转换Dao的实现。比如:PersonDaoHibernate如果用着不爽要, 可以使用PersonDaoiBatis。再问一下,如果我现在有了model类Person,eclipse自己能否重构出PersonDao,PersonDaoImpl,PersonService,PersonServiceImpl?如果能的话,怎么做?
解决方案
spring推荐,每个model大概5个类。 model 本身一个 ,一个dao接口,一个dao实现类,一个service接口,一个service实现类。 推荐归推荐,用不用建这么多类,就看个人爱好了。
解决方案二:
有ide工具 。。refactor一下就出来了,不用自己去写。在这个前提下 有个api好些咯。可以让概念和实现分开
解决方案三:
PersonDao主要是个人喜好,因为实际开发,大部分情况下一个dao只有一个实现类,另整个PersonDaoHibernate实在没有什么必要.有些同学喜欢查看dao接口声明,是因为可以一目了然dao提供调用的所有方法,而直接DaoHibernate的话,会混杂很多其它代码.
解决方案四:
chinajj 写道spring推荐,每个model大概5个类。 model 本身一个 ,一个dao接口,一个dao实现类,一个service接口,一个service实现类。 推荐归推荐,用不用建这么多类,就看个人爱好了。目前我的做法是每个model就一个类,所有model公用一个通用的dao接口 dao实现 和一个通用的service接口 service实现 ,一般情况只使用这个通用的dao,有需要抽取的地方才使用spring推荐的做法,开发速度要快很多,而且功能实现了以后再重构成spring推荐的方式也没啥难度。