我可以使用什么(也许是设计模式?)来避免这种ISP冲突?使用Asp.net基页

本文关键字:ISP 冲突 基页 net Asp 使用 什么 可以使 也许 设计模式 我可以 | 更新日期: 2023-09-27 18:12:20

我有一个类:

class BasePage
{
   protected abstract Company ReferencedCompany
   {
      get;
   }
}

和从它继承的asp.net页面。然而,我不希望/需要在继承类中实现此属性。我真的不想让它空着。我是否可以使用某种设计模式来避免这种明显违反接口隔离原则(ISP)的情况?

我也不能重构整个代码库,所以我正在寻找一些我可以扔的方式。也许是适配器模式?

我可以使用什么(也许是设计模式?)来避免这种ISP冲突?使用Asp.net基页

你应该有更多的类型。如果某个页面没有ReferencedCompany,则该页不是 BasePage。请看下面的例子:

class BasePage
{
   //something common to ALL pages   
}
class CompanyPage : BasePage
{
   protected abstract Company ReferencedCompany
   {
      get;
   }
}
class EmployeePage : BasePage
{
   protected abstract IEnumerable<Employee> AllEmployees
   {
      get;
   }
}

如果你在ASP中使用它。NET WebForms考虑使用MVP模式,它清晰地分离了视图模型和表示器。