第一、观察者模式定义 观察者模式(ObServer Pattern)定义对象之间的一对多的依赖,让多个观察者对象同时监听一个对象,当主体对象发生变化时,它的所有依赖者(观察者) 都会收到通知并更新,其实就是发布定义模式,发布者发布消息,订阅者获取消息,订阅了就能接收到消息,没有订阅就接收不到消息。 ...
分类:
其他好文 时间:
2019-09-04 00:13:05
阅读次数:
85
回流 就是页面布局发生变化。 重绘 就是节点需要更改外观而不会影响布局。 和 Event Loop 的关系 1. 回流 和 重绘 发生在 Event Loop 执行完微任务后,因为浏览器是 60Hz 的刷新率,每 16.6ms 才会更新一次。 2. 然后判断是否有 resize 或者 scroll ...
分类:
其他好文 时间:
2019-09-03 09:45:43
阅读次数:
121
一、角色 + 目标(Subject):被观察对象的抽象接口 + 具体目标(ConcreteSubject):被观察对象的具体实现 + 观察者(Observer):观察者对象的抽象接口 + 具体观察者(ConcreteObserver):观察者对象的具体实现 二、适用场景 + 一个抽象模型有两个方面, ...
分类:
其他好文 时间:
2019-08-21 11:15:26
阅读次数:
69
1.3 MV*模式介绍 MV*模式图示 1.4 Vue实现数据绑定的原理 书写第一个Vue案例 Vue深入响应式原理图 面试题/理解: 如何理解深入响应式原理? Vue是通过数据劫持和事件的订阅发布来实现的,数据劫持指的是Vue通过observer观察者对象对data选项中的数据进行getter和s ...
分类:
Web程序 时间:
2019-08-21 00:09:28
阅读次数:
113
LiveData.java @MainThread public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<? super T> observer) { assertMainThread("observe"); if ...
分类:
其他好文 时间:
2019-08-20 19:06:00
阅读次数:
99
概述 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 使用场景 一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。 一个抽象 ...
分类:
其他好文 时间:
2019-08-20 19:00:21
阅读次数:
69
LiveData.java @MainThread public void observeForever(@NonNull Observer<? super T> observer) { assertMainThread("observeForever"); AlwaysActiveObserver ...
分类:
其他好文 时间:
2019-08-20 18:48:58
阅读次数:
301
LiveData.java @MainThread public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<? super T> observer) { assertMainThread("observe");(htt ...
分类:
其他好文 时间:
2019-08-19 21:33:27
阅读次数:
97
LifecycleBoundObserver 中提供了一个 detachObserver() 方法,只有这个方法里面,会进行生命周期的反注册功能。 @MainThread public void removeObserver(@NonNull final Observer<? super T> ob ...
分类:
其他好文 时间:
2019-08-19 21:11:06
阅读次数:
88
1.zookeeper集群机制 半数机制:集群中半数以上机器存活,集群可用。 zookeeper适合装在奇数台机器上。 Zookeeper集群的节点角色: Leader 和 follower (Observer) 只要集群中有半数以上节点存活,集群就能提供正常服务。 2.zookeeper的集群结构 ...
分类:
其他好文 时间:
2019-08-18 11:20:29
阅读次数:
103