【发布时间】:2009-09-20 11:14:16
【问题描述】:
现在我有一个继承System.Web.UI.Page 的页面基类和另一个继承System.Web.UI.UserControl 的用户控件基类,这些类包含相同的方法。由于 C# 不支持多重继承,我无法将这两个类合并为一个同时继承 Page 和 UserControl 的类。
将功能保留在两个基类中但只在一个地方实现这些方法的最佳方法是什么?
我正在考虑制作一个接口,让两个基类调用包含接口实现的第三个类。有没有更好的方法,这样当我添加一个新方法时,我不必在三个地方都这样做(即使实现只在第三类中)。
【问题讨论】:
-
你有什么理由不只是创建一个在构造函数中接受 HttpContext 的辅助类吗?这将使您能够执行诸如查看查询字符串和执行 Response.Redirects 之类的操作。
-
最初的问题是关于 httpContext,它是关于页面基类中的自定义代码(一个常见的用例),它在页面和用户控件之间是 DRY 的。所讨论的方法很可能是特定于业务逻辑的,与 http 上下文无关。