今天刚看了一篇文章讲责任链模式的文章。http://www.cnblogs.com/chenssy/p/3332193.html
开发的时候,碰到view.post()方法,读源码的过程中感觉很像责任链模式。
/**
* <p>Causes the Runnable to be added to the message queue.
* The runnable will be run on the user interface thread.</p>
*
* @param action The Runnable that will be executed.
*
* @return Returns true if the Runnable was successfully placed in to the
* message queue. Returns false on failure, usually because the
* looper processing the message queue is exiting.
*
* @see #postDelayed
* @see #removeCallbacks
*/
public boolean post(Runnable action) {
final AttachInfo attachInfo = mAttachInfo;
if (attachInfo != null) {
return attachInfo.mHandler.post(action);
}
// Assume that post will succeed later
ViewRootImpl.getRunQueue().post(action);
return true;
}
如果attachInfo不为空,则自己处理,为空则交给ViewRootImpl处理。一时想到了,记一下,欢迎拍砖。