函數(shù)式編程
-
寫好的函數(shù),專門執(zhí)行特定功能.一般在
Util
類中出現(xiàn)比較多,比如:/** * 根據(jù)手機(jī)的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素) */ fun dip2px(context: Context, dpValue: Float): Int { val scale = context.resources.displayMetrics.density return (dpValue * scale + 0.5f).toInt() }
函數(shù)式寫死的,它只負(fù)責(zé)單一的任務(wù),需要的時候調(diào)用它,它會根據(jù)傳入?yún)?shù)給你返回值.
響應(yīng)式編程
-
一個比較形象的比喻就是流水線, 比如蛋筒冰淇淋的蛋筒,是怎么卷出來的?,它需要經(jīng)過:
烤制蛋筒 --> 卷邊成型 --> 冷卻定型 --> 套上紙殼兒 --> 出廠檢測的過程
下面大家來欣賞下:
蛋筒流水線
響應(yīng)式編程代碼示例://舉一個開門的步驟 Observable.just(context) .map{拿出鑰匙} .map{開門} .map{拔掉鑰匙} .map{關(guān)門} .subscribe()
響應(yīng)式編程有比較鮮明的前后順序,后面的步驟要依賴于之前的步驟.
鏈?zhǔn)骄幊?/h4>
-
鏈?zhǔn)骄幊淌褂玫木褪?code>Builder模式,例如非常經(jīng)典的Android AlertDialog
的創(chuàng)建.
// 用Builder模式創(chuàng)建Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle("Hello Dialog")
.setIcon(R.drawable.logo)
.setMessage("This is a Dialog")
.show();
鏈?zhǔn)骄幊毯晚憫?yīng)式編程代碼格式有點類似,但是鏈?zhǔn)骄幊桃话銢]有嚴(yán)格的前后順序關(guān)系,比如上面的setTitle
和setMessage
,誰前誰后無所謂.
參考:
鏈?zhǔn)骄幊淌褂玫木褪?code>Builder模式,例如非常經(jīng)典的Android AlertDialog
的創(chuàng)建.
// 用Builder模式創(chuàng)建Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle("Hello Dialog")
.setIcon(R.drawable.logo)
.setMessage("This is a Dialog")
.show();
鏈?zhǔn)骄幊毯晚憫?yīng)式編程代碼格式有點類似,但是鏈?zhǔn)骄幊桃话銢]有嚴(yán)格的前后順序關(guān)系,比如上面的setTitle
和setMessage
,誰前誰后無所謂.