享元模式:
1:使用享元对象可以有效的支持大量的细粒度对象。
2:享元模式在我们平时接触很多,比如Java 中的常量池,线程池。这些都是为了重用对象
3:那么在Android 中,哪里使用到了 享元模式了? 线程通信中的 Mesage,每次我们获取Message时调用 :Message.obtain() 其实就是从消息池中取出可重复使用的消息 message,这样可以避免产生大量的Message 对象
4: Handler MessageQueue Message Looper系列_android的专栏-CSDN博客 ,可以看看我写的关于 Handler Message这篇文章
/**
* Return a new Message instance from the global pool. Allows us to
* avoid allocating new objects in many cases.
从全局的对象池中返回一个 Message对象,避免在一些情况下申请新对象
*/
public static Message obtain() {
synchronized (sPoolSync) {
if (sPool != null) {
Message m = sPool;
sPool = m.next;
m.next = null;
m.flags = 0; // clear in-use flag
sPoolSize--;
return m;
}
}
return new Message();
}