1.单例模式(singleton Pattern)是一种简单的设计模式,它的定义如下:为了确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
2.通用代码如下
class Singleton { private static final Singleton singleton=new Singleton(); private Singleton(){ //自定义的初始化内容 }
//通过该方法获得实例化对象 public static Songleton getInstance(){ return singleton; } public static void doSomething(){ System.out.println("我是单例模式"); }}
3.优缺点 (1)内存中只有一个实例,减少了内存开支,减少系统性能开销(2)可以避免对资源的多重占用(3)设置全局访问点,优化和共享资源访问(4)扩展困难,测试麻烦,与单一职责原则冲突4.使用场景(1)要求生成唯一序列号的环境(2)在整个项目中需要一个共享的访问点和共享数据(3)创建对象消耗的资源过多(4)需要定义大量的静态常量和静态方法
5.实例(某一时期皇帝只有一个)
class Emperor { private static final Emperor emperor=new Emperor(); private Emperor(){ } public static Emperor getInstance(){ return emperor; } public static void say(){ System.out.println("我是皇帝秦始皇"); } } public class Minister { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int day; for(day=0;day<7;day++){ Emperor emperor=Emperor.getInstance(); emperor.say();}}}