论坛首页 入门技术论坛

关于类层之间的疑惑

浏览 9009 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-07-15  
比如两个类层,如dao层和service层,我们通过spring的IOC依赖注入或者接口加单列模式通过工厂方法来连接类层或者别的方式
如UserDao类(dao数据处理层),可以实现IUserDao接口,
而UserService类(业务层)可以实现IUserService接口供action来调用
UserDao和UserService的联系,可以在UserService类中通过定义一个Private IUserDao userDao;
userDao 通过set方法依赖注入或者通过构造方法来实例化,也可以通过工厂模式来取得对象的引用
还有一种就是直接new UserDao实例。想问下这三者的利弊?要是大项目,并发很多的情况下,用单例是否合适。用new是否内存开销太大,影响性能。请大家说说看法。
   发表时间:2009-07-15  
简单的说, 用spring IOC
0 请登录后投票
   发表时间:2009-07-15  
呵呵,这里不讨论用哪种,是想明白各种方式的优劣
0 请登录后投票
   发表时间:2009-07-15  
注入是方便pojo与环境解耦,如果new DAO那么UserService就无法成为POJO,你怎么在自动测试框架里跑?
0 请登录后投票
   发表时间:2009-07-15  
大家继续关注,说说想法
0 请登录后投票
   发表时间:2009-07-15  
dao和service都是无状态的,即线程安全的,
就应该是单例的! 大型项目也是如此
0 请登录后投票
   发表时间:2009-07-15  
直接NEW就把各层耦合在一起了,不好
0 请登录后投票
   发表时间:2009-07-15  
jakoes 写道
直接NEW就把各层耦合在一起了,不好


我知道你说的是对的。
我还想听听你说,这种耦合有什么关系?
我想听你实际体会,空想出来的我也会想,网上找来的我也会找,书上看来的我也会看。
我一直都为这个苦恼,没有切身体会,就无法提升自己的理解。
0 请登录后投票
   发表时间:2009-07-15  
xellos 写道
jakoes 写道
直接NEW就把各层耦合在一起了,不好


我知道你说的是对的。
我还想听听你说,这种耦合有什么关系?
我想听你实际体会,空想出来的我也会想,网上找来的我也会找,书上看来的我也会看。
我一直都为这个苦恼,没有切身体会,就无法提升自己的理解。



用new的话,是紧耦合,而且不利于测试,比如说你现在new了userservice,第一,现在如果想换一个实现userservice2,就需要改代码了,维护起来很麻烦,但是如果用ioc的就可以解决这个问题;第二,这样做不利于测试,因为无法插入一个测试模拟类,但是如果用ioc的话可以很方便的插入一个测试模拟类
0 请登录后投票
   发表时间:2009-07-15  
楼上说的都对 只不过感觉第二说的不是太在那点上!~`
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics