根据《高效Java第二版》中的说法,单元素的枚举类型已经成为实现Singleton的最佳方法。 package example6; /** * 使用枚举来实现单例模式的示例 * @author dream * */ public class Singleton { /** * 定义一个枚举的元素,它就代表了Singleton的一个实例 */ uniqueInstance; /** * 示意方法,单例可以有自己的操作 */ public void singletonOperation(){ //功能树立 } } 本质 控制实例数量 何时选用单例模式 当需要控制一个类的实例只能有一个,而且客户只能从一个全局访问点访问它时,可以选用单例模式,这些功能恰好是单例模式要解决的问题。 2. 适配器模式:ListView,GridView的Adapter 1). 简介: 不同的数据提供使用一个适配器来想一个相同的客服提供服务 3. 建造者模式:AlertDialog.Builder 1). 简介: 可以分步地构造每一部分. 4. 享元模式:Message.obtainMessage通过Message对象来避免大量的Message对象被频繁的创建和销毁 1). 运用共享技术有效的支持大量细粒度的对象 5. 命令模式: Handler.post后Handler.handlerMessage 1). 简介: 把请求封装成一二对象发送出去,方便定制、排队、取消. 6. 迭代器模式: 如通过Hashtable.elements方法可以得到一个Enumeration,然后通过这个Enumeration访问Hashtable中的数据,而不用关心Hashtable中的数据存放方式 1). 提供一个方法顺序访问数据集合中的所有数据而又不暴露对象的内部表示 7. 备忘录模式:Activity的onSaveInstanceState和onRestoreInstanceState就是通过Bundle这种序列化的数据结构来存储Activity的状态,至于其中存储的数据结构,这两个方法不用关心 1). 简介: 不需要了解对象的内部结构的情况下备份对象的状态,方便以后恢复 8. 观察者模式: 我们可以通过BaseAdapter.registerDataSetObserver和BaseAdapter.unreg