java - Struts Actions 和 Composition 优于继承

标签 java design-patterns oop struts

当我想应用 DRY 原则时,即针对不同用例(例如管理员角色和运算符(operator)角色)统一多个 Struts 操作的代码时,一种选择是使用抽象基类“BaseAction” ”作为操作,然后使用“AdminAction extends BaseAction”和“OperatorAction extends BaseAction”。我会为抽象的 NewBaseAction、UpdateBaseAction、DeleteBaseAction、ListBaseAction 应用继承。

但是有一个原则说“组合胜过继承”(http://www.artima.com/lejava/articles/designprinciples4.html)。有没有办法通过使用接口(interface)以干净的方式实现它?

最佳答案

声明“优先使用组合而不是继承”,这是总体上更好设计的线索。像 Struts 这样的框架引入了自己的编程模型。因此,您应该以符​​合 Struts 最佳实践的方式编写 Struts 操作。

在您的情况下,编写基类还不错。问题是如何设计 Action 类层次结构,例如考虑使用 DispatchAction将您的部分功能作为您的基本操作类。它将避免您创建很多不必要的类。

查找 DRY 原则的“Struts 方式”用例。您可以在免费书籍中找到更多 Struts 最佳实践 Struts Survival Guide

关于java - Struts Actions 和 Composition 优于继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502916/

相关文章:

java - H 2's File Locking Method ' 序列化'

c# - 最佳外部 REST API 访问模式?

design-patterns - Flyweight 与 Singleton 模式之间的实际使用差异是什么?

由于语言设计而导致的 C++ 特定模式

oop - 依赖属性中的 MATLAB 惰性求值

java - 理解 RecyclerView.ViewHolder

java - 通过 web.xml 的速度属性文件

java - 在Hadoop的WordCount程序中获取异常

matlab - matlab中类库的全局变量

c# - 打开带有 .cs 扩展文件的项目?