我正在构建一个winforms屏幕。在屏幕上,它将显示
Category1 Sub-1-1 Sub-1-2 Sub-1-3 Category2 Sub-2-1
单击sub-1-1
将弹出一个屏幕并显示与子1-1相关的数据;相同的子1-2,...等所以总共有五种形式(上面的样本有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>();
....
答案 0 :(得分:1)
第一个类似于GOD类,可能会违反大多数SOLID原则。它会使代码难以重构,即使它只是facade。
您当然应该使用仅处理one responsibility的较小接口。