单件模式确保一个类只有一个实例,并提供一个全局访问点。
我们把某个类设计成自己管理的一个单独实例,同时也避免其他类再自行产生实例。要想取得单件实例,通过单件类是唯一的途径。
我们也提供这个实例的全局访问点,当你需要实例时,向类查询,它会返回单个实例。
我们可以延迟实例化的方式创建单件,这种做法对资源敏感的对象特别重要。
看看类图:
重点:
1、单件模式确保程序中一个类只有一个实例。
2、单件模式也提供访问这个实例的全局点。
3、确定在性能和资源上的限制,然后小心的选择适当的方案来实现单件,以解决多线程的问题(我们必须认定所有的程序都是多线程的)。
4、小心,如果你使用多个类加载器,可能导致单件失效而产生多个实例。