Struts中的Action算是MVC中的model呢还是Controller呢?

       在网上看到许多的材料,似乎对这两个说的不是很明白,我认为,Action应该属于Controller。事实上,在孙卫琴的《精通Struts》和http://dev.21tx.com/2005/04/27/39802.html     的《Struts用户指南》中,都认为Action应该属于Controller。

      (1)MVC中,model表示业务数据和业务逻辑(商业逻辑).通常由JavaBean或EJB组件来实现。业务逻辑即“怎么做”,而Controller(控制器)即“决定做什么”,Action实际上是“决定做什么”,它应该属于Controller的。

     (2)为了保证代码的可重用性,业务逻辑不应该设计和实现和所运行的Web环境无关。如果把业务逻辑代码放到Action中,那么必然导致业务逻辑与Web环境相关,业务逻辑与Web应用环境相捆绑了,这样不利于代码的可重用性和移植。
          因此,对于大型应用来说,如果真正要做到model与控制器的分离,就不能把有关的业务逻辑代码放到Action里,Action应该只执行“决定做什么”,而不是“怎么做”,Action执行的是控制器的功能,Action充当用户请求和业务逻辑处理的适配器。对于一些小型应用来说,不考虑重用的话,Action类本身也可以完成一些实际的业务逻辑。

    (3)从应用软件分层的角度说,要保证各层的独立和自治,就不能调用高层的API。看看import,就知道写的代码时候真正分层,真正可移植,易维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值