结束太多物体(分层设计)

时间:2013-03-18 06:29:09

标签: c# asp.net oop solid-principles

我有很多下拉列表,我的webform上的自定义网格显示给最终用户。每个都是通过DAL从数据库填充的。我为每个人定义了单独的类。但是,我正在考虑减少类的数量,因为每个新的需求都会产生一个单独的自定义对象。

我怎样才能减少号码。这些要求的课程?我应该使用数据集,列表等吗?

2 个答案:

答案 0 :(得分:1)

我希望这听起来不太关键,但是如果将每个需求作为一个类添加到最后都是很多工作,也许你可以查看继承来清理那些类中的样板/共享代码。

通常很多小类(不与其他类重叠的功能)是一件好事。相反的复杂性问题,即“上帝”类,其中所有代码都填充到更少的类中,更糟糕。

答案 1 :(得分:1)

“为每个定义的单独类”和“我如何减少这些要求的类数”。

你真的为每个下拉列表创建一个新类吗? 根据我的经验,我通常使用这个类来概括它:

public class DropDownItem<T>{
  public string Display{get;set;}
  public T Value{get;set;}
}

虽然可以使用Dictionary<T>来完成。

从未在ASP.Net中使用过,但它在Winform和WPF数据绑定中运行良好。在Asp.Net中,我认为正常的select-option足以满足需求。

但是对于gridview,您需要将类概括为更通用。声明一个具有大部分参数的类,该参数可以为空。

示例一请求有10个参数,5是必需的,其他5是可空的。网格显示参数1,2,3,4,5,7,8和网格B显示参数1,2,3,4,5,6,9,10。这样,您可以在更多网格中使用一个类。

不要使用DataSet / DataTable。最好使用比DataSet更多的类。使用比DataSet更多的类时,可维护性会更好,因为它是强类型的,而不是DataSet中的“COLUMN_NAME”。