首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java泛型寻找模式和API设计

使用Java泛型寻找模式和API设计
EN

Stack Overflow用户
提问于 2013-10-13 01:20:05
回答 1查看 516关注 0票数 5

我在Java集合和Guava中广泛使用泛型。在使用API时,我对此有很好的理解:

  1. PECS规则
  2. {co,相反,n}方差
  3. 通配符
  4. 有界泛型

但是,我发现很难使用泛型来开发API。Java泛型有设计模式吗?或者任何对Java泛型的引用也会有所帮助。我读过:

  1. 有效Java
  2. “Java泛型与集合”一书
  3. http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html

我只熟悉泛型有用的两种模式:

  1. 包含的概念: Java集合、番石榴Optional<T>等。
  2. 类型参数化:番石榴Predicate<T>Function<T>
EN

回答 1

Stack Overflow用户

发布于 2013-10-13 04:42:01

大多数标准设计模式都是关于带有继承和组合的标准OO中固有的即席多态。泛型是关于参数多态性的。您的第二个“模式”基本上包含了整个概念,所以我不会称之为模式。

那么参数模式是什么呢?

贷款人的模式呢。什么类型的资源被借出或借用并不重要,因此它可以是一个泛型参数。

工厂也可以用泛型来表示。生成的实例类型是一个参数。

函数式或回调型对象通常都是以void和T-returning风格出现。

这是您所要求的抽象级别吗?

当我想出更多的答案时,我会继续编辑这个答案。

就API而言,我的经验法则是尝试并接受尽可能大的类型,基本上意味着在方法参数中尽可能多地使用通配符,使用方差来决定extendssuper是否合适,并返回最特定的可能类型,这意味着尽可能少的类型变量或通配符。

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

https://stackoverflow.com/questions/19340858

复制
相关文章

相似问题

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