0

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

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

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

我有Categories, sub-1-1, sub-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>();
....
4

1 回答 1

1

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

您当然应该使用只处理一项职责的较小接口。

于 2012-05-11T05:32:10.290 回答