Abh*_*k S 5 java generics design-patterns api-design
我在处理 Java 集合和 Guava 时非常广泛地使用泛型。我在使用 API 时非常理解它:
但是,我发现很难使用泛型来提出 API。Java泛型有设计模式吗?或者任何对 Java 泛型的引用也会有所帮助。我读了:
我只熟悉泛型有用的两种模式:
Optional<T>等。Predicate<T>,Function<T>大多数标准设计模式都是关于标准 OO 中固有的具有继承和组合的临时多态性。泛型是关于参数多态性的。你的第二个“模式”基本上包含了整个概念,所以我不会称其为模式。
那么参数化模式有哪些呢?
贷款人模式怎么样?借出或借入什么类型的资源并不重要,因此这可以是通用参数。
工厂也可以使用泛型来表示。正在生成的实例的类型是一个参数。
函数或回调对象通常有 void 和T-returning 风格。
这是您要求的抽象级别吗?
当我想出更多答案时,我会继续编辑这个答案。
就 API 而言,我的经验法则是尝试接受尽可能广泛的类型,这意味着方法参数中尽可能多的通配符,使用方差来决定 或 是否extends合适super,并返回可能的最具体类型,意味着尽可能少的类型变量或通配符。
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |