锁定老帖子 主题:关于类层之间的疑惑
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-15
如UserDao类(dao数据处理层),可以实现IUserDao接口, 而UserService类(业务层)可以实现IUserService接口供action来调用 UserDao和UserService的联系,可以在UserService类中通过定义一个Private IUserDao userDao; userDao 通过set方法依赖注入或者通过构造方法来实例化,也可以通过工厂模式来取得对象的引用 还有一种就是直接new UserDao实例。想问下这三者的利弊?要是大项目,并发很多的情况下,用单例是否合适。用new是否内存开销太大,影响性能。请大家说说看法。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-15
简单的说, 用spring IOC
|
|
返回顶楼 | |
发表时间:2009-07-15
呵呵,这里不讨论用哪种,是想明白各种方式的优劣
|
|
返回顶楼 | |
发表时间:2009-07-15
注入是方便pojo与环境解耦,如果new DAO那么UserService就无法成为POJO,你怎么在自动测试框架里跑?
|
|
返回顶楼 | |
发表时间:2009-07-15
大家继续关注,说说想法
|
|
返回顶楼 | |
发表时间:2009-07-15
dao和service都是无状态的,即线程安全的,
就应该是单例的! 大型项目也是如此 |
|
返回顶楼 | |
发表时间:2009-07-15
直接NEW就把各层耦合在一起了,不好
|
|
返回顶楼 | |
发表时间:2009-07-15
jakoes 写道 直接NEW就把各层耦合在一起了,不好
我知道你说的是对的。 我还想听听你说,这种耦合有什么关系? 我想听你实际体会,空想出来的我也会想,网上找来的我也会找,书上看来的我也会看。 我一直都为这个苦恼,没有切身体会,就无法提升自己的理解。 |
|
返回顶楼 | |
发表时间:2009-07-15
xellos 写道 jakoes 写道 直接NEW就把各层耦合在一起了,不好
我知道你说的是对的。 我还想听听你说,这种耦合有什么关系? 我想听你实际体会,空想出来的我也会想,网上找来的我也会找,书上看来的我也会看。 我一直都为这个苦恼,没有切身体会,就无法提升自己的理解。 用new的话,是紧耦合,而且不利于测试,比如说你现在new了userservice,第一,现在如果想换一个实现userservice2,就需要改代码了,维护起来很麻烦,但是如果用ioc的就可以解决这个问题;第二,这样做不利于测试,因为无法插入一个测试模拟类,但是如果用ioc的话可以很方便的插入一个测试模拟类 |
|
返回顶楼 | |
发表时间:2009-07-15
楼上说的都对 只不过感觉第二说的不是太在那点上!~`
|
|
返回顶楼 | |