我希望能够做如下的事情:
//non-generic var MyTable = new Table(); string name = MyTable.Name; IEnumerablerows = MyTable.Rows; //generic var MyTableGeneric = new Table (); string name = MyTableGeneric.Name; IEnumerable rows = MyTableGeneric .Rows;
会是这样的事情:
http://img81.imageshack.us/img81/427/diagramcm3.jpg
或者这会更好:
http://img301.imageshack.us/img301/4136/presentation1nh9.jpg
对不起,如果这很难理解我想要的东西,基本上我有两个对象将共享comman属性,除了那些将是通用的行集合.我想以最干净的方式做到这一点.
对不起我的蹩脚图表,用powerpoint制作:)
我会说第二种设计更好.更少的项目和更容易的继承路径.
第一个设计有不必要的接口,除非你实现了实现接口的其他东西,但是不从基类继承,否则你不需要这些接口.