【问题标题】:Service layer for an UI with multiple screens具有多个屏幕的 UI 的服务层
【发布时间】:2012-05-11 05:23:12
【问题描述】:

我正在构建一个 winforms 屏幕。在屏幕上会显示

类别1 子 1-1 子 1-2 子 1-3 类别2 子 2-1

点击sub-1-1会弹出画面,显示sub-1-1相关数据; sub-1-2, ... 等也一样。所以总共会有 5 个表单(1 个主表单 + 4 个弹出式表单用于上面的示例(实际上将有大约 30 个子类别)。

我有Categoriessub-1-1sub-1-2、...、sub-2-1 的模型。我正在写一个服务层。我应该这样做,

public class ServiceLayer 
{
  CategoriesModel GetCategories();
  Sub11Model GetSub11();
  Sub12Model GetSub12();
  Sub13Model GetSub13();
  Sub21Model GetSub21();
  .....
}

或者每个表单都有它现在的服务类实例?

public class ICategoryService { ... }
public class ISubCategoryService<T> 
{
  T GetSub();
}

var sub11 = new SubService<Sub11Model>();
var sub12 = new SubService<Sub12Model>();
var sub13 = new SubService<Sub13Model>();
var sub21 = new SubService<Sub21Model>();
....

【问题讨论】:

    标签: model-view-controller design-patterns model mvp service-layer


    【解决方案1】:

    第一个看起来像GOD 类,可能会违反大部分SOLID 原则。它会使代码难以重构,即使它只是一个facade

    您当然应该使用只处理one responsibility 的较小接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多