有一个空的基类坏设计?

use*_*348 7 .net c# interface application-design

我需要一个我的DTO类的基类,它将用于我的通用接口.

但DTO课程没有任何共同之处.它们只是包含一些属性的哑类.

public void GetGridData()
{

   IDataForGrid<DTOBase> aa;

   if(request == 1) aa = new CustomerGridData;
   if(request == 2) aa = new OrderGridData;

   var coll = aa.GetList();
}

public class CustomerGridData : IDataForGrid<CustomerDTO>
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

如果它们没有任何共同之处,那么您要对从列表中检索的实例进行什么操作?

在任何情况下,拥有基类意味着什么时候(好吧,如果)你确定他们确实需要在以后共同拥有的东西,你不必返回并重构(重新基础)一切.但是在任何情况下我都会考虑使用接口而不是基类来处理这类事情,因为它听起来并不需要重用底层实现(因为它们没有任何共同之处!).这取决于你认为他们最后可能会有什么共同点.


Vil*_*lx- 6

这不是一个糟糕的设计,虽然有点不常见.可以这样想想 - 虽然没有任何缺点,但至少有两个好处:

  • 基类充当接口的过滤器,因此您不能仅将任何对象传递给它们 - 只是您的DTO对象.标记接口也可以.
  • 当他们最终得到一些共同的东西时,很容易将它添加到那里,你将不必重构所有东西.