今天刚看了一篇文章讲责任链模式的文章。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处理。一时想到了,记一下,欢迎拍砖。