首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛型或非泛型

泛型或非泛型
EN

Stack Overflow用户
提问于 2009-02-27 21:36:59
回答 8查看 943关注 0票数 6

基本上,我有一个包含不同水果的自定义列表类。假设每个水果都有存储在列表中的ID号。

是否最好有:

代码语言:javascript
复制
new AppleList();
new OrangeList();
new LemonList();

代码语言:javascript
复制
new FruitList<Fruit.Apple>();
new FruitList<Fruit.Orange>();
new FruitList<Fruit.Lemon>();

需要考虑的事项:

  • 所有ID都是int类型。
  • 水果的类型不会影响清单本身的执行。它将仅供列表的客户端使用,如外部方法等。

我想使用的是更清晰,更好的设计,更快,更高效等。另外,如果以上两种技术不是最好的,请提出您的想法。

编辑:如果还不清楚的话,水果就是一个枚举。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-02-27 21:57:13

*所有ID均为int型。 果实的种类不会影响清单本身的执行。它将仅供列表的客户端使用,如外部方法等。

考虑到这两个事实,我不会费心于仿制药。我会在FruitList上放置一个正常的属性来指示它是哪种水果。

票数 3
EN

Stack Overflow用户

发布于 2009-02-27 21:41:55

使用组合:

代码语言:javascript
复制
public class AppleList : FruitList<Apple> { ... }
public class OrangeList : FruitList<Orange> { ... }
public class LemonList : FruitList<Lemon> { ... }

将公共逻辑放在基类list中:

代码语言:javascript
复制
public class FruitList<T> : List<T>
    where T : IFruit 
{ ... }
票数 10
EN

Stack Overflow用户

发布于 2009-02-27 21:41:40

如果使用泛型,是否有创建FruitList类型的目的?你能用一下单子吗?

在性能上不会有太大的差异,所以我说为什么要创建三个不同的类,而其中一个会做同样的事情呢?使用通用解决方案。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/596772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档