我在Struts 2中的一些操作中使用了一些重复的代码。
不用说,我希望这个代码只存在于一个地方,所以我会把它收集到一个方法中,然后把它放在.哪里?
什么是最佳做法?是否为每种类型的助手方法创建帮助类?一个大帮手的方法?一个大的静态类?几个静态类?
我在使用MVC。
我读过关于堆叠溢出的其他答案,似乎没有人能完全回答我的问题。
非常感谢你的帮助。
根据请求使用示例编辑更新:
例如:
我有几行代码,这些代码为会话添加了一个数组列表,当某个对象被“分级”(对于该会话)时存储。它在整个应用程序中调用了一些操作。
另外,我有一个视图组件,它包含在多个JSP页面上,需要装载来自模型的一些数据。我需要将代码复制/粘贴到每个操作中(显然要避免这种情况)。
希望能澄清。如果没有,请告诉我。
发布于 2011-08-04 02:11:20
我的一般规则是,如果这些方法是计算的,换句话说,如果它们只是执行一个函数(比如数学),我将创建一个带有静态方法的类,并在所有地方使用它。
我有一个实用程序包,作为一个jar,我在我的许多项目中都包含了这个包,比如字符串操作和验证函数,因为它们很少改变。
字符串验证是一个很好的例子。我有一个验证类,我经常使用它来检查空字符串或空字符串,并返回一个布尔值。我只是从我的动作课上这样称呼它:
if(Validation.string(value)){
// do magic - huzzah
}我尝试将实用程序方法分组到类中,特别是如果我在各处使用的话。它可以帮助我避免重新输入,在类中搜索一个好主意,并提供代码的一个实例,以防我需要更新、修改、重载或覆盖。
发布于 2011-08-05 13:41:23
对于保存到会话的多个JSP页面和对象中包含的视图组件,我创建了一个基本操作类和子操作类,以避免重复的代码。
public class BaseAction extends ActionSupport implements SessionAware {
protected Map session;
protected ResourceBundle rb;
// common getters for shared view components and common setters
...
}--
public class SubAction extends BaseAction {
...https://stackoverflow.com/questions/6935292
复制相似问题