屬性表示狀態(tài)而不是行為(Properties should represent state, not behavior) Kotlin中的屬性(property)不同于Jav...
![240](https://upload.jianshu.io/users/upload_avatars/4803763/b71b354d-5611-4514-8b66-71d3a29c8c45.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
屬性表示狀態(tài)而不是行為(Properties should represent state, not behavior) Kotlin中的屬性(property)不同于Jav...
異常與類型安全結(jié)果(Prefer null or Failure result when the lack of result is possible) 你可能覺得固逗,這一條的...
明確參數(shù)和狀態(tài)的約束條件(Specify your expectations on arguments and state) 這條的意思是說妒牙,對于函數(shù)傳入的參數(shù)我們應(yīng)該進(jìn)行必...
為可讀性設(shè)計(jì)(Design for readability) 可讀性是一種半玄學(xué)的話題,它的評價標(biāo)準(zhǔn)常常取決于上下文環(huán)境和你對一門語言的了解程度崖咨。來看一個具體的例子: 以上兩...
限制可變性(Limit mutability) 只讀屬性 val 只讀屬性val可以改變,但是只讀屬性并沒有提供修改的切入點(diǎn)煌寇,而修改切入點(diǎn)才是引起同步或者其他問題的主要原因楚堤。...
0. 前言 最近加入了一家做安全領(lǐng)域的公司塔粒,接觸到了一些密碼學(xué)的東西结借,尤其是國密算法,可能國內(nèi)做這個方向的公司并不多卒茬,我發(fā)現(xiàn)國內(nèi)關(guān)于國密算法的介紹都很淺船老,對于其背后數(shù)學(xué)及密碼...
單例設(shè)計(jì)模式就不用多介紹了,說是大家最熟悉的設(shè)計(jì)模式也不為過圃酵,在Effective Java中有兩條與之相關(guān):第3條用私有構(gòu)造器或者枚舉類型強(qiáng)化 Singleton 屬性柳畔,第...
@MycroftWong 官方之前承認(rèn)過,dagger.android是失敗的郭赐,這個就是替代方案
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列薪韩,很實(shí)用,也不復(fù)雜堪置,在此我搬運(yùn)轉(zhuǎn)述一下躬存。本文并非翻譯,只是概述舀锨,想要更詳細(xì)地了解岭洲,請查看原文:Dagger Party Tr...
原型設(shè)計(jì)模式是一種很簡單的設(shè)計(jì)模式,其實(shí)就是通過clone方法去復(fù)制一個對象坎匿,也就是Java中的Cloneable接口盾剩。原型模式是很多語言的特性之一,包括Java和Kotli...
@MycroftWong 千層餅警告替蔬,一層更比一層深告私,話說Dagger就是這樣,稀爛的文檔承桥,失敗的dagger.android驻粟,明明是簡單的DI,整的學(xué)習(xí)曲線無比陡峭凶异,但是這種生成代碼式的DI在性能上無人能及∈癯牛現(xiàn)在情況已經(jīng)不太一樣了挤巡,因?yàn)镵otlin Multi-Platform來了,像是Kodein已經(jīng)實(shí)現(xiàn)了KMP酷麦,Koin也在向KMP靠攏矿卑,Dagger這種Java特定平臺的東西,擴(kuò)展性肯定要差一些沃饶,如果Kotlin有多平臺下的注解處理器母廷,那還是可能實(shí)現(xiàn)類Dagger的DI框架,不過目前來看還不太可能糊肤,推薦你關(guān)注一下Koin琴昆,或許會有不一樣的思路。
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列馆揉,很實(shí)用椎咧,也不復(fù)雜,在此我搬運(yùn)轉(zhuǎn)述一下把介。本文并非翻譯,只是概述蟋座,想要更詳細(xì)地了解拗踢,請查看原文:Dagger Party Tr...
@MycroftWong 使用Module注入U(xiǎn)ser并不一定只在Module中使用,不然也不會有私有依賴這一說向臀,Component之間的關(guān)系決定了User的使用范圍巢墅。雖然這四種方式本質(zhì)上可以看作一樣的,但是能使用1的肯定推薦使用1券膀,因?yàn)楹啙嵕遥苁褂?,4的也不推薦使用2芹彬,還是因?yàn)楹啙嵭钏瑁阅芤采院谩?
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列,很實(shí)用舒帮,也不復(fù)雜会喝,在此我搬運(yùn)轉(zhuǎn)述一下。本文并非翻譯玩郊,只是概述肢执,想要更詳細(xì)地了解,請查看原文:Dagger Party Tr...
@MycroftWong correct
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列译红,很實(shí)用预茄,也不復(fù)雜,在此我搬運(yùn)轉(zhuǎn)述一下侦厚。本文并非翻譯耻陕,只是概述拙徽,想要更詳細(xì)地了解,請查看原文:Dagger Party Tr...
更常見的可能是這個例子淮蜈,AppComponent 常常需要Application Context斋攀,可以通過Module的方式注入,但是更推薦使用Builder的方式:
@Component
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun build(): AppComponent
}
}
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列梧田,很實(shí)用淳蔼,也不復(fù)雜,在此我搬運(yùn)轉(zhuǎn)述一下裁眯。本文并非翻譯鹉梨,只是概述,想要更詳細(xì)地了解穿稳,請查看原文:Dagger Party Tr...
然后存皂,向Component添加依賴對象有幾種方式,1.構(gòu)造函數(shù)@Inject 2.傳統(tǒng)Module方式 3.Component Builder 4.Component Factory逢艘。方式4是Dagger后來添加的旦袋,本質(zhì)上跟方式3是一樣的,你可以忽略它改。像你這種問題疤孕,使用方式3最合適。大致如此:
@SubComponent
interface UserComponent {
@Subcomponent.Builder
interface Builder {
@BindsInstance
fun user(user: User): Builder
fun build(): UserComponent
}
}
這個User在你創(chuàng)建UserComponent的時候必須動態(tài)的傳進(jìn)Component中央拖,這就省著通過創(chuàng)建一個Module傳輸了祭阀。
Dagger小技巧之私有依賴前言 偶然間看到了這個關(guān)于Dagger小技巧的系列,很實(shí)用鲜戒,也不復(fù)雜专控,在此我搬運(yùn)轉(zhuǎn)述一下。本文并非翻譯遏餐,只是概述伦腐,想要更詳細(xì)地了解,請查看原文:Dagger Party Tr...