我已经阅读了解释C# 中没有多重继承的问题/答案,我们甚至不需要它,而且它会导致太多问题。
现在,我正在做一个项目,我真的不明白如何在没有多重继承、不重复代码的情况下做事。
这是情况。有一个网站,其主页和其他页面继承自母版页(主页不继承自)。页面和母版页都在执行一些操作:自定义登录、统计信息、加载用户自定义设置等。目前,解决方案很糟糕,因为这些任务的源代码只是复制了两次。
主页类继承自Page
. 另一方面,母版页继承自Masterpage
. 从逻辑上讲,从一个公共类继承也很好,但它是多重继承,所以这是不可能的。
那么该怎么做呢?
我想了几种方法,但不喜欢它们:
创建一个将从 page/masterpage 类调用的独立类。例如
bool isDisplayingTips = this.CurrentUser.IsDisplayingTips
,我不写,而是写bool isDisplayingTips = this.SharedObjects.CurrentUser.IsDisplayingTips
。我不喜欢它,因为它要写更长的时间。创建一个“真实的”、空的、通用的母版页,并从中继承主页和母版页。它不仅需要编写更多代码来访问母版页参数,而且还会减慢速度,每次请求都需要额外的母版页。
任何的想法?