基本上我有一个包含不同水果的自定义List类.假设每个水果都有一个存储在列表中的ID号.
有没有更好的:
new AppleList();
new OrangeList();
new LemonList();
Run Code Online (Sandbox Code Playgroud)
要么
new FruitList<Fruit.Apple>();
new FruitList<Fruit.Orange>();
new FruitList<Fruit.Lemon>();
Run Code Online (Sandbox Code Playgroud)
需要考虑的事项:
我想使用更清晰,更好的设计,更快,更高效等的那个.此外,如果以上2种技术不是最好的,请提出您的想法.
编辑:如果不清楚,顺便说一句水果是一个枚举.
Joh*_*han 10
使用组合:
public class AppleList : FruitList<Apple> { ... }
public class OrangeList : FruitList<Orange> { ... }
public class LemonList : FruitList<Lemon> { ... }
Run Code Online (Sandbox Code Playgroud)
将通用逻辑放在基类列表中:
public class FruitList<T> : List<T>
where T : IFruit
{ ... }
Run Code Online (Sandbox Code Playgroud)
维护1个通用列表要比3个非泛型版本容易得多.如果你真的喜欢AppleList名称,你总是可以使用using技巧来命名一个通用列表
using AppleList=Fruit.FruitList<Fruit.Apple>
Run Code Online (Sandbox Code Playgroud)
\n\n\n\xe2\x80\xa2所有ID都是int类型。
\n\n\xe2\x80\xa2水果的类型不会影响List本身的实现。它只会被列表的客户端使用,比如外部方法等。
\n
鉴于这两个事实,我不会为泛型而烦恼。我会在 FruitList 上放置一个普通属性来指示它是哪种类型的水果。
\n 归档时间: |
|
查看次数: |
937 次 |
最近记录: |