函数式编程 写好的函数,专门执行特定功能.一般在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,谁前谁后无所谓.
----------------------------
原文链接:https://www.jianshu.com/p/3d974dc7677a
程序猿的技术大观园:www.javathinker.net
[这个贴子最后由 flybird 在 2021-09-11 10:36:55 重新编辑]
网站系统异常
系统异常信息
Request URL:
http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3907
java.lang.NullPointerException
如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员 。