栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号