关于软件设计,解偶,测试

最近一直在琢磨以下几个问题:

1.web软件到底该分多少层好

2.如何降低层之间的耦合性

3.各层如何进行单元测试

我就以上3个问题说一下自己的理解

1.web软件到底该分多少层好?

常说的mvc,有3层,view,control,model,但具体的项目中的实现恐怕没有对应的那么好的,我的理解:

view(jsp)+actionservlet +action +service+dao+db(可能不对啊!)

view负责展示例如jsp

actionservlet 作为控制层

action我把它归于控制,因为他并不是先具体业务逻辑

service 业务逻辑层

dao 数据持久层

db 数据库

系统的核心在service,所以作为开发人员的关注点也应集中在service(业务逻辑层)。

2.如何降低层之间的耦合性?

从上面的层次来看主要是service和dao ,action和service,以service和dao的解偶为例来说

解偶的方式有如下(就目前所想到的)

 1.通过dao接口的方式 在service中通过调用接口达到解偶目的

2.IOC(控制反转),通过配置文件中配置dao(大的系统中如用此方式恐怕配置文件会很大)

3.可以利用设计模式 如工厂模式,当dao中有所改动,只需修改相应工厂方法即可

 

3.各层如何进行单元测试?

对与view的单元测试,恕本人愚钝目前还不知道

ationservlet和action中不含逻辑可以不进行单元测试(个人观点)

主要说一下service层的测试,测试该层的目的主要是看业务逻辑是否正确,所以一般不涉及到数据库的操作当然你说service中调用了dao中代码,涉及到了数据库操作,这是我们需要mock对象,测试工具可用easymock,接下来是测试dao ,在javaeye中看了些帖子,说测试dao'层主要是看发送的sq的正确性,其实这是独立的dao测试,见到大多数人建议针对dao采用集成测试,即结合真实数据库测试,我也赞同这种测试dao的方式,因为在集成测试中这样才使你的测试更有意义,看到的效果才更真实(拙见)

 

目前了解的不多,有点晕眩,记录下目前的理解,有待以后改进完善,希望看到的人不吝赐教!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值