Struts2 Struts操作类是否违反srp
正如我所看到的,Struts 2中的action类有多种职责 首先,我们经常将验证逻辑放在action类的validate方法中。 所以当验证逻辑改变时,我们必须打开类进行修改 其次,action类负责生成jsp文件使用的结果。因此,当我们打算修改视图时,我们通常必须一起修改action类和jsp 第三,action类必须知道其他类的API来运行业务逻辑,并知道如何处理返回的结果 最后,action类的代码变得一团糟。 有没有更好的方法让动作课变得干净?Struts2 Struts操作类是否违反srp,struts2,coding-style,single-responsibility-principle,Struts2,Coding Style,Single Responsibility Principle,正如我所看到的,Struts 2中的action类有多种职责 首先,我们经常将验证逻辑放在action类的validate方法中。 所以当验证逻辑改变时,我们必须打开类进行修改 其次,action类负责生成jsp文件使用的结果。因此,当我们打算修改视图时,我们通常必须一起修改action类和jsp 第三,action类必须知道其他类的API来运行业务逻辑,并知道如何处理返回的结果 最后,action类的代码变得一团糟。 有没有更好的方法让动作课变得干净? 或者有一本书教你如何编写干净的动作类代码
或者有一本书教你如何编写干净的动作类代码?动作类是一个简单的POJO。您可以根据自己的喜好进行清理,只需执行即可 处理程序类的默认输入方法由
Action
接口定义
操作
界面:
首先,我们经常将验证逻辑放在action类的validate方法中。所以当验证逻辑改变时,我们必须打开类进行修改
那是你的选择,但我不会。通常,应通过XML配置处理验证逻辑。如果您有复杂的验证逻辑,那么应该将其隔离在自己的处理程序中,然后将其用作自定义验证器或由validate
中的薄层调用
S2动作是web层和业务逻辑之间的贴面,包括验证
其次,action类负责生成jsp文件使用的结果。因此,当我们打算修改视图时,我们通常必须一起修改action类和jsp
action类可以用作业务层和视图层之间的DTO,也可以使用单独的实体并使用action仅公开该DTO。无论发生什么,这都是必要的——同样,动作在请求和响应之间起着薄薄的一层作用。你如何选择组织它取决于你
第三,action类必须知道其他类的API来运行业务逻辑,并知道如何处理返回的结果
嗯,是的。任何介于请求和业务逻辑之间的事情都需要知道该做什么。也就是说,它不必这样做,只需将数据从请求传输到业务逻辑即可。到业务逻辑的映射根本不需要硬编码
最后,action类的代码变得一团糟
那是你的错,不是S2的错
public interface Action {
public String execute() throws Exception;
}