单例模式(Singleton Pattern)案例解析

单例模式(Singleton Pattern)

定义:

确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。


类图:



案例描述:
公司里面的所有员工共用一台打印机打印文件。
打印机是全局唯一资源,可以用单例描述。

案例源码:
/*
 * shsheng
 */
package DesignPatterns;

public class SingletonPattern {

    public static void main(String[] args) {
        Staff staff1=new Staff(1);
        Staff staff2=new Staff(2);
        staff1.print();
        staff2.print();
    }
    static class Printer{
        private static Printer instance;
        public static Printer getInstance(){
            if(instance==null){
                instance=new Printer();
            }
            return instance;
        }
        @Override
        public String toString(){
            return "打印机";
        }
    }
    static class Staff{
        int num;
        public Staff(int num){
            this.num=num;
        }
        public void print(){
            Printer printer=Printer.getInstance();
            System.out.println(this+"使用"+printer+"打印文件!");
        }
        @Override
        public String toString(){
            return "员工"+num;
        }
    }

}

运行结果:
员工1使用打印机打印文件!
员工2使用打印机打印文件!

你可能感兴趣的:(设计模式)