iteye_17041 2013-03-21 10:18
浏览 234
已采纳

一个框架的讨论

公司在搞一个项目使用shh。Action类必须实现一个自定义的接口。类名叫Action ,里面只是定义一些变量,用于定义返回结果集的字符串。
struts.xml
[code="java"]/${ forward }
/WEB-INF/page/${ forward }
[/code]
Action类
[code="java"]
public interface Action {

/**
 * 后台页面返回
 */
public static final String MANAGER = "manager";
/**
 * 自定义返回
 */
public static final String CUSTOM = "custom";
/**
 * 后台输出返回
 */
public static final String MESSAGE = "message";

}
[/code]
在Struts的Action中使用一下代码返回结果集
[code="java"]
return MANAGER;
return CUSTOM;
[/code]
我认为,这样做不好。
1、所有的Action都得实现Action类,不利于松解偶。
2、自定义的Action只是定义了变量,没有抽象方法,不算完整的接口
3、从对象来看,Struts的Action和自定义Action类没有存在和清晰的关系
没有存在“如果你是 Action 必须 实现Action的什么什么”,里面也只有静态变量。
4、我觉得在常量类里面定义这些变量会好一些
唯一存在的好处就是,如果需求改变,需要在Action中做一些初始化的时候,使用implements Action就能很好的处理,但是目前情况来看,只用于return MANAGER;
return CUSTOM;
而已。
后来,我在Constant类中定义这些静态变量,Stuts的Action不在实现自定义Action接口。
[code="java"]
public static final String ACTION_FORWARD_MANAGER = "manager";//后台页面返回
public static final String ACTION_FORWARD_CUSTOM = "custom";//自定义返回
public static final String ACTION_FORWARD_MESSAGE = "message";//后台输出返回
[/code]
在Action中使用
[code="java"]
return Constant.ACTION_FORWARD_MANAGER;
[/code]
不知道大家怎么看待这件事情?

  • 写回答

7条回答 默认 最新

  • zx527291227 2013-03-22 09:48
    关注

    如果Action只是为了几个静态变量而存在的话,那是没什么意义的至少现在是这样的,所以Lz讲的还是有道理的,我想你们公司会这样做也一定有它的道理。像我公司的框架可能比你公司的还要冗余,但里面有好的也有坏。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 用大厂网站防红自己网站
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码