gpt4 book ai didi

android - 为什么作者在一个项目中定义一个空白接口(interface)?

转载 作者:行者123 更新时间:2023-12-04 12:17:54 25 4
gpt4 key购买 nike

以下代码来自项目https://github.com/skydoves/Pokedex
我不明白为什么作者需要定义一个空白接口(interface)Repository .
使用空白界面有什么好处Repository ?
存储库.kt

/** Repository is an interface for configuring base repository classes. */
interface Repository
DetailRepository.kt
class DetailRepository @Inject constructor(
private val pokedexClient: PokedexClient,
private val pokemonInfoDao: PokemonInfoDao
) : Repository {
...
}
MainRepository.kt
class MainRepository @Inject constructor(
private val pokedexClient: PokedexClient,
private val pokemonDao: PokemonDao
) : Repository {
...
}

最佳答案

它被称为 Marker interface pattern .它是没有任何方法或常量的接口(interface)。通常创建这样的接口(interface)是为了为标记的类提供特殊行为。你可以在java中找到一些这样的接口(interface)。例如 CloneableSerializable .
如果是 图鉴 我认为原因要简单得多。看起来这个接口(interface)只是为了对所有存储库进行分组而创建的。项目中从未使用存储库抽象。作者总是使用特定的实现。 Repository 接口(interface)是多余的,但当我们想要查找项目中的所有存储库时会很有用:)

关于android - 为什么作者在一个项目中定义一个空白接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68172246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com