该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-18
zozoh 写道 Trans 就是类似于 Sprint 的事务模板 //1. Dao 抽象出来,为的是可能有其他的更好的实现 //2. EntityService 类替你省了一个参数, dao.fetch(Class, long) 用 EntityService 写就是 service.fetch(long) // 3. TreeService 提供了操作树形数据的能力 没有注释,和 JDoc ,呵呵 这个项目我写了 3-4 个月, 现在还在 alpha,我想知道设计上,具体哪些地方禁不住推敲,现在各个方面都是可以改的。 因为我怕自己的思路太狭隘,所以现在也想在论坛收集一些好建议,你可以给我一些建议和意见吗?比如,哪个类的哪个函数应该怎么改会好些,或者干脆某个类是脑子进水,根本不需要。 说不定我们能找到一些好主意 Java 的范型是擦除, C++ 的膨胀,的确不一样,在 《Java Thinking》 里有专门说。 用惯了,觉得其实还可以,不是原来感觉的那么讨厌了,呵呵 1 我没听说过sprint。但是我觉得这种设计很违反OO原则。而且MS现在的功能弱一些?像select for update/delete这种支持么? 2 这个我反对。Dao作为入口类不应该提供所谓更好的实现。容易造成混乱。 而且对于Dao的逻辑部分。嗯,的确,小而多。所以我觉得应该考虑用adapter来实现。把那些小而多的东西实现分成小而少的adaptee。这样Dao纯adapt虽然多,但没有任何逻辑部分代码,更清晰一些 3 Service类没有提供抽象方法啊。还是没明白service抽象的目的啊。。。 我猜nutz中存在的这些费解的设计问题还有很多, 因为没有注释,所以我也没仔细往下看。。。 |
|
返回顶楼 | |
发表时间:2009-04-18
zozoh兄有意思,弄出nutz来很有想法,我以后会常用的,支持!
|
|
返回顶楼 | |
发表时间:2009-04-19
直接在代码里写SQL。
良好的代码结构比XML配置文件好维护的多。 |
|
返回顶楼 | |
发表时间:2009-04-19
mikeandmore 写道 1 我没听说过sprint。但是我觉得这种设计很违反OO原则。而且MS现在的功能弱一些?像select for update/delete这种支持么? Sorry 写错了,其实是 Spring。 OO 的概念太宽泛了把,Nutz 就是想让你用最少的代码作最多的事情。 你通过 fetch() 获取一个对象,然后可以直接使用 delete 或者 update 更新它。 MS 是什么? 微软? mikeandmore 写道 2 这个我反对。Dao作为入口类不应该提供所谓更好的实现。容易造成混乱。 而且对于Dao的逻辑部分。嗯,的确,小而多。所以我觉得应该考虑用adapter来实现。把那些小而多的东西实现分成小而少的adaptee。这样Dao纯adapt虽然多,但没有任何逻辑部分代码,更清晰一些 问题是哥们,我现在弄不少了啊,现在 NutDao 这个类用指向的其他类我很难再合并了。我努力看看能不能压缩代码。 mikeandmore 写道 3 Service类没有提供抽象方法啊。还是没明白service抽象的目的啊。。。 就是让你调用 dao 接口的时候少传一个参数。 比如你用 dao 接口获取对象: dao.fetch(Abc.class,23); 如果你用了EntityService,你就只需要这么写: service.fetch(23); 因为 EntityService 知道你要传的第一个参数,为什么知道呢? 因为你构建 EntityService 的时候是这么写的: IdEntityService<Abc> service = new IdEntityService<Abc>(){}; 为什么叫 IdEntityService 呢? 因为你的 Entity 类使用了 @Id 来声明一个主键 在Nutz 里,还有 IdNameEntityService,顾名思义,就是你的 Entity 即声明了 @Id 又声明了 @Name,在你的数据表里,这两个字段一般有一个是主键,另外一个加了唯一性约束。 如果你的数据表只有一个字符串型主键,还有一个 NameEntityService 和你对应。总之,就是 com.zzh.service 那个包里的那几个类而已。 总之,EnityService 类以及其子类,设计用来替你省掉一个 Class<?> 参数,我想,每次代码都给你省一点,积少成多嘛。你要是懒得用 Servcie 也可以不用。我自己写代码的时候,觉得 Service 类挺方便的。我就是个懒人,代码能少敲一个字儿,我就会想尽办法少敲两个字儿。 mikeandmore 写道 我猜nutz中存在的这些费解的设计问题还有很多, 因为没有注释,所以我也没仔细往下看。。。 是啊,注释写起来太麻烦了,我慢慢加... 如果你感兴趣,咱们 MSN或者 GTalk 联系。 我随时恭候你的任何问题。 |
|
返回顶楼 | |
发表时间:2009-04-19
donglix 写道 zozoh兄有意思,弄出nutz来很有想法,我以后会常用的,支持!
恩,在使用的时候如果有问题,可以随时联系我。或者在 googlecode 上给我报 issue |
|
返回顶楼 | |
发表时间:2009-04-19
呃。。我们MSN上说吧。。。
不过我倒是打算重新设计一个orm。。呵呵。。。 nutz的想法不错,但是设计上做了太多不必要的妥协。 |
|
返回顶楼 | |
发表时间:2009-04-19
好啊,你加我吧,我白天应该都在线。下周因为我老板来,可能白天不时的要讨论设计,你先在 MSN 上给我留言,我看到了就回你
|
|
返回顶楼 | |
发表时间:2009-04-21
我觉得LZ写的比较好,我用过ibatis,在性能方面和开发使用性方面,确实比Hibernate要好点点,当然Hibernate是当今很强大的数据持久层框架,最后是引用LZ的话,没有最好的,只有最适合的!
|
|
返回顶楼 | |
发表时间:2009-06-17
ibatis 如果sql条件关系复杂的话,你试试,光sql维护,不搞死人才怪呢,xml里拼sql!!
|
|
返回顶楼 | |