函数式编程
-
写好的函数,专门执行特定功能.一般在
Util
类中出现比较多,比如:/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ fun dip2px(context: Context, dpValue: Float): Int { val scale = context.resources.displayMetrics.density return (dpValue * scale + 0.5f).toInt() }
函数式写死的,它只负责单一的任务,需要的时候调用它,它会根据传入参数给你返回值.
响应式编程
-
一个比较形象的比喻就是流水线, 比如蛋筒冰淇淋的蛋筒,是怎么卷出来的?,它需要经过:
烤制蛋筒 --> 卷边成型 --> 冷却定型 --> 套上纸壳儿 --> 出厂检测的过程
下面大家来欣赏下:
响应式编程代码示例://举一个开门的步骤 Observable.just(context) .map{拿出钥匙} .map{开门} .map{拔掉钥匙} .map{关门} .subscribe()
响应式编程有比较鲜明的前后顺序,后面的步骤要依赖于之前的步骤.
链式编程
-
链式编程使用的就是
Builder
模式,例如非常经典的Android AlertDialog
的创建.// 用Builder模式创建Dialog AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("Hello Dialog") .setIcon(R.drawable.logo) .setMessage("This is a Dialog") .show();
链式编程和响应式编程代码格式有点类似,但是链式编程一般没有严格的前后顺序关系,比如上面的
setTitle
和setMessage
,谁前谁后无所谓.