国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Android 簡單服務(wù)定位器模式實(shí)現(xiàn)

瀏覽:4日期:2022-09-20 10:22:10

依賴注入(Dependency Injection)和服務(wù)定位器(Service Locator)是實(shí)現(xiàn)控制反轉(zhuǎn)(Inversion of Control)的兩種主要手段。

Android的主流依賴注入框架有:Dagger 和 Kion

這些依賴注入框架都感覺比較重。

服務(wù)定位器比如少見,這里提供一個一個簡單的服務(wù)定位器模式實(shí)現(xiàn)。

引入

項(xiàng)目地址:github.com/czy1121/ser…

repositories { maven { url 'https://gitee.com/ezy/repo/raw/android_public/'}} dependencies { implementation 'me.reezy.jetpack:servicelocator:0.4.0' }API

// 獲取實(shí)例inline fun <reified T> resolve(name: String = T::class.java.name): T?// 注冊為單例inline fun <reified T> singleton(name: String = T::class.java.name, crossinline block: () -> T)// 注冊為工廠inline fun <reified T> factory(name: String = T::class.java.name, crossinline block: () -> T)使用

單例,每次resolve獲得的都是同一實(shí)例

class SomeService { fun doSomething() { }}// 注冊 singleton { SomeService()}// 獲取val service = resolve<SomeService>()

具名單例

class NamedService(val name: String) { fun doSomething() { }}// 注冊 singleton('a') { NamedService('aaa')}singleton('b') { NamedService('bbb')}// 獲取 val serviceA = resolve<NamedService>('a')val serviceB = resolve<NamedService>('b')

工廠,每次resolve都會產(chǎn)生新實(shí)例

class SomeService { fun doSomething() { }}// 注冊 factory { SomeService()}// 獲取,每次resolve都會產(chǎn)生新實(shí)例val service1 = resolve<SomeService>() val service2 = resolve<SomeService>()

具名工廠

class NamedService(val name: String) { fun doSomething() { }}// 注冊 factory('a') { NamedService('aaa')}factory('b') { NamedService('bbb')}// 獲取// A1 與 A2 是使用同一工廠產(chǎn)生的不同實(shí)例// A1 與 B1 是使用不同工廠產(chǎn)生的不同實(shí)例val serviceA1 = resolve<NamedService>('a')val serviceA2 = resolve<NamedService>('a')val serviceB1 = resolve<NamedService>('b')val serviceB2 = resolve<NamedService>('b')

以上就是Android 簡單服務(wù)定位器模式實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Android 簡單服務(wù)定位器模式的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 霍邱县| 星子县| 澄迈县| 彭州市| 东海县| 固始县| 堆龙德庆县| 三原县| 德令哈市| 沙河市| 临沂市| 平塘县| 都兰县| 常山县| 普兰店市| 工布江达县| 东丽区| 金山区| 正定县| 越西县| 望江县| 定兴县| 高唐县| 栖霞市| 桦甸市| 恩平市| 友谊县| 蒙城县| 武川县| 十堰市| 阳原县| 濮阳市| 临泉县| 峨眉山市| 定襄县| 哈密市| 旺苍县| 外汇| 嵩明县| 天祝| 临邑县|