亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2021年03月27日 09:33:49   作者:ezy  
這篇文章主要介紹了Android 簡單服務(wù)定位器模式實(shí)現(xiàn),幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下

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

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

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

服務(wù)定位器比如少見,這里提供一個(gè)一個(gè)簡單的服務(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?
// 注冊(cè)為單例
inline fun <reified T> singleton(name: String = T::class.java.name, crossinline block: () -> T)
// 注冊(cè)為工廠
inline fun <reified T> factory(name: String = T::class.java.name, crossinline block: () -> T)

使用

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

class SomeService {
  fun doSomething() {
  }
}

// 注冊(cè) 
singleton {
  SomeService()
}

// 獲取
val service = resolve<SomeService>() 

具名單例

class NamedService(val name: String) {
  fun doSomething() {
  }
}

// 注冊(cè) 
singleton("a") {
  NamedService("aaa")
}
singleton("b") {
  NamedService("bbb")
}

// 獲取 
val serviceA = resolve<NamedService>("a")
val serviceB = resolve<NamedService>("b")

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

class SomeService {
  fun doSomething() {
  }
}

// 注冊(cè) 
factory {
  SomeService()
}

// 獲取,每次resolve都會(huì)產(chǎn)生新實(shí)例
val service1 = resolve<SomeService>() 
val service2 = resolve<SomeService>() 

具名工廠

class NamedService(val name: String) {
  fun doSomething() {
  }
}

// 注冊(cè) 
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ù)定位器模式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android LaunchMode四種啟動(dòng)模式詳細(xì)介紹

    Android LaunchMode四種啟動(dòng)模式詳細(xì)介紹

    這篇文章主要介紹了Android LaunchMode四種啟動(dòng)模式詳細(xì)介紹的相關(guān)資料,這里對(duì)launchmode的使用方法進(jìn)行了詳解及啟動(dòng)模式的比較,需要的朋友可以參考下
    2016-12-12
  • Jetpack?Compose入門基礎(chǔ)全面精講

    Jetpack?Compose入門基礎(chǔ)全面精講

    開始布局部分。這部分我個(gè)人感覺沒有必要每個(gè)組件、屬性都詳細(xì)說到,否則篇幅會(huì)很長。建立起Compose中的組件與?Android?Views的一個(gè)對(duì)應(yīng)關(guān)系就夠了。具體還是需要在實(shí)際的使用中去熟悉
    2022-10-10
  • Android實(shí)現(xiàn)語音合成與識(shí)別功能

    Android實(shí)現(xiàn)語音合成與識(shí)別功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)語音合成與識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Android刷新加載框架詳解

    Android刷新加載框架詳解

    這篇文章主要為大家詳細(xì)介紹了Android刷新加載框架的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Flutter實(shí)現(xiàn)給圖片添加涂鴉功能

    Flutter實(shí)現(xiàn)給圖片添加涂鴉功能

    這篇文章主要介紹了利用Flutter實(shí)現(xiàn)給圖片添加涂鴉功能,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Android 通過Intent使用Bundle傳遞對(duì)象詳細(xì)介紹

    Android 通過Intent使用Bundle傳遞對(duì)象詳細(xì)介紹

    這篇文章主要介紹了Android 通過Intent使用Bundle傳遞對(duì)象詳細(xì)介紹的相關(guān)資料,并附實(shí)例代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Android中button的onClick事件幾種方法

    Android中button的onClick事件幾種方法

    這篇文章主要介紹了Android中button的onClick事件幾種方法的相關(guān)資料,這里提供三種方法,實(shí)現(xiàn)監(jiān)聽事件,需要的朋友可以參考下
    2017-09-09
  • Android實(shí)現(xiàn)同頻共幀動(dòng)畫效果

    Android實(shí)現(xiàn)同頻共幀動(dòng)畫效果

    我們聽過“同頻共振”,其原理是多個(gè)物體物體以同樣的頻率振動(dòng),但是本篇實(shí)現(xiàn)的效果是“同頻共幀”,含義是:動(dòng)畫以同樣的頻率和同樣的幀展示在多個(gè)不同View上,文中通過代碼示例介紹的非常詳細(xì),感興趣的同學(xué)可以自己動(dòng)手嘗試一下
    2024-01-01
  • 詳解android特性之CoordinatorLayout用法探析實(shí)例

    詳解android特性之CoordinatorLayout用法探析實(shí)例

    本篇文章主要介紹了android特性之CoordinatorLayout用法探析實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Android7.0中關(guān)于ContentProvider組件詳解

    Android7.0中關(guān)于ContentProvider組件詳解

    本文描述了Android7.0中關(guān)于ContentProvider組件實(shí)現(xiàn)原理以及ContentProvider發(fā)布者和調(diào)用者這兩在Framework層是如何實(shí)現(xiàn)的。
    2017-11-11

最新評(píng)論