栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Google Guava供应商示例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Google Guava供应商示例

该

Supplier
接口只是一个无参数函数的抽象,该函数返回一个值…这是 获取某个对象的某些实例的一种方法
。由于它是如此通用,因此可以用于许多事物。Jared解释了
Multimaps
工厂如何将其用作工厂来创建
Collection
值的某种类型的新实例。

鉴于界面的简单性,它还可以

Supplier
通过将a 的行为包装在
Supplier
某种程度上改变其行为的行为中,对a
的行为进行非常强大的修饰。记忆化就是一个例子。我自己使用该
Suppliers.memoizeWithExpiration
方法是一种简单的方法,因此在给定的时间内,某些数据最多只能从服务器读取一次。

我还建议您看看Guice以及如何在其中

Provider
使用该接口。与Guice的工作
Provider
方式完全相同
Supplier
且至关重要。

  • Provider
    允许用户定义一种创建给定类的新对象的自定义方式。用户可以编写一种
    get()
    方法,该方法可以执行创建新对象所需的任何代码,因此,他们不仅限于让Guice仅使用构造函数来创建对象。在这里,他们使用它来为对象的新实例定义自定义 工厂 。
  • Guice允许注入
    Provider
    任何依赖项。这可能会在每次
    get()
    调用时返回一个新实例,或者可能总是返回一个实例或两者之间的任何值,具体取决于所
    Provider
    表示的绑定的范围。这还允许依赖项的“延迟实例化” …从而
    Provider
    为类提供了一种 创建对象 的 方法, 而无需提前实际创建对象。在调用对象和实例之前,无需创建对象的实例
    get()
    。
  • 如上所述,
    Provider
    s是Guice进行范围界定的基础。如果您看一下Scope接口,您会注意到它的单个方法
    Provider<T> scope(Key<T> key, Provider<T> unscoped)
    是根据
    Provider
    s 定义的。此方法采用 某种 方法 创建一个对象的新实例 (
    Provider<T> unscoped
    ),并
    Provider<T>
    根据适用范围定义的任何策略返回一个,这可能会返回该对象的某些缓存实例,而不是创建一个新的实例。默认
    NO_SCOPE
    范围仅通过
    unscoped
    提供程序传递,这意味着每次都会创建一个新实例。该
    SINGLETON
    范围缓存第一次调用的结果
    unscoped.get()
    然后返回该单个实例,确保依赖于单例作用域对象的所有内容都获得对该单个对象的引用。注意,
    Provider
    通过返回的
    SINGLETON
    范围的
    scope
    方法做 本质上是一回事 作为
    Supplier
    由归国
    Suppliers.memoize
    (虽然这是一个比较复杂一点)。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号