饿汉单例模式实例——取快递

Posted A Free Raindrop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了饿汉单例模式实例——取快递相关的知识,希望对你有一定的参考价值。

package single;
import java.util.*;
public class CourierThread extends Thread{

    String couriers[]={"顺丰快递","申通快递","圆通快递","韵达快递","天天快递"};
    String threadName=null;
    public CourierThread(String name) {
        // TODO Auto-generated constructor stub
        threadName=name;
    }
    public void run()
    {
        Person person=Person.getInstance();
        Random random =new Random();
        for(int i=0;i<5;i++)
        {
            System.out.println(threadName+":你好,我是【"+couriers[random.nextInt(couriers.length)]+"】有你快递,请尽快来取快递!");
            System.out.println("回答"+threadName+":\\t"+person.getAnser());
            try
            {
                this.sleep(1000);
                
            }catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }

}
package single;
//饿汉单例模式
public class Person {
    private static Person person=new Person();
    private int num;
    private Person()
    {
        
    }
    public static Person getInstance()
    {
        return person;
    }
    public synchronized String getAnser()
    {
        return "我是XXX,请稍等马上来!这是第"+(++num)+"个快递!";
    }

}



package single;

public class Singleton {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        CourierThread courier1=new CourierThread("线程1");
        CourierThread courier2=new CourierThread("线程2");
        courier1.start();
        courier2.start();
    }

}

 

 

以上是关于饿汉单例模式实例——取快递的主要内容,如果未能解决你的问题,请参考以下文章

深入理解设计模式-单例模式(饿汉单例模式懒汉单例模式双锁单例模式)

设计模式-单例模式

单例设计模式

单例模式

单例模式

C&C++设计模式——饿汉单例模式