在实现一个个Action的时候,总是陷入困惑.因为实现ActionSupport接口的类总是非单例的,这就意味着每处理一个action请求,webwork就会生成一个该类的实例,虽然垃圾回收器的进步使性能的影响进一步减少,但如果过多的业务逻辑写到Action类里还是有可能产生大对象(这样描述可能不够确切),因为业务逻辑还是写到单例中去比较好.
这样我们就需要在Action类里引入一个(或说聚合一个)单例的操作类进来,从而,把具体的业务逻辑转移到这个单例的类里面去.但直接与视图(界面)打交道的是Action类,为了打造友好的用户界面,你将不得不在Action里写一些提示信息如,
this.addActionError("您的帐号余额不足");
this.addActionError("请先登陆");
这些信息中有相当一部分是业务逻辑中提示出来的,如果我们把业务逻辑转移到我们新引入的操作类中,则需要这个操作类把业务逻辑中的提示信息返回给Action类,再由Action类通过ActionError返回给视图层.这样就需要制定一种约定来规范操作类和Action类之间的消息传递,并且在项目中都遵循这种规范.不知道大家在实际开发中是怎么来处理的,大家可以讨论一下.
此外,把提示信息直接写在java的代码里也是很有弊病的,假如提示信息需要改变,就得修改class,再编译,再部署......在下真诚地希望大家说说自己的做法.
Action的困惑与消息传递
最新推荐文章于 2020-07-10 11:23:09 发布