久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:2日期: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)文章:
主站蜘蛛池模板: 宁国市| 特克斯县| 唐河县| 新宁县| 和平区| 桦甸市| 巫山县| 临沭县| 山阴县| 陇西县| 兖州市| 兰溪市| 剑阁县| 岢岚县| 鹤山市| 宜兰县| 东宁县| 麻城市| 石嘴山市| 黎城县| 渝北区| 栾城县| 嫩江县| 华安县| 壤塘县| 庆城县| 东城区| 高碑店市| 屯昌县| 凤山县| 淮滨县| 莱州市| 贵定县| 达州市| 彭州市| 土默特右旗| 如皋市| 专栏| 娄底市| 和顺县| 德江县|