【发布时间】:2015-10-16 08:00:14
【问题描述】:
我有两个类——在这个特殊情况下是 MVC-Controlles——它们有一个通用的控制器动作(一个从 JavaScript 调用的 JSON 动作)。由于代码重复,我想将此操作放在父控制器类中。我们已经有一个控制器基类,它继承自 Controller 并用作基类,具有通用功能,来自其他 6 个控制器。我的 JSON 动作实际上只对 2 个控制器通用,所以我认为将我的 JSON 动作放在其他 6 个控制器已经使用的基本控制器中并不是一个好主意。这是现有的类层次结构图:
Existing Controller class hierarchy
我应该把我的 JSON 动作放在哪里以避免代码重复?我的想法是继承类 ControllerBase - 比如说 ControllerBaseExtended - 并将我的 JSON 动作放在这里。所以现在,我的 2 个控制器可以继承自 ControllerBaseExtended 而不是 ControllerBase。这就是类层次结构最终的样子:
Final Controller class hierarchy
有没有更好的方法来解决这个问题?
【问题讨论】:
标签: c# asp.net-mvc inheritance encapsulation code-duplication