Java设计模式初解 之 单例模式

来源:互联网 发布:我想在淘宝开店 编辑:程序博客网 时间:2024/06/05 06:51

1-什么是单例模式

   java中new一个类,就得到了一个对象。多次的new,便得到多个对象;但是,有时我们需要只有一个实例。

   定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供使用。

   特点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

2-为什么使用单例模式

   在实际应用开发中,有时候我们仅仅需要某个资源的一份就够了,如我们知道的Windows系统中,任务管理器,我们只能在系统中 打开一个窗口(不信,你可以试试);

   还有,QQ软件聊天窗口,无论你点击几次好友头像,始终是同一个聊天窗口。这在程序中就是 希望这个窗口对象只有一个实例,只被实例化一次,后面如果还想得到实例,返回的还是这个已经存在的实例对象,这是一个需求场景。其次这种模式,

   还降低了内存使用率,减少了不必要的内存浪费。因为,一个实例已经足够可以胜任我们要完成的业务要求。

3-什么情况下使用单例

   正如2中提到,如果你希望这个资源(对象)只要一份就可以,就能帮你完成某个任务,而且又能节省资源开销,那么你可以采用单例;

一个简单的单例代码--

<span style="font-size:14px;">public class Single {//把单例对象声明为静态,始终保持在内存中只有一份private static Single single = null;//私有构造器方法 使得外部不可以通过传统的new来实例化这个对象//注:不可以省略,省略了,就是public修饰的构造器了private Single(){}//为了线程安全 使用 synchronized 方法锁 public static synchronized Single getInstance(){//如果对象不存在,就创建对象if(single==null){single = new Single();}//否则,就返回已经存在的实例return single;}}</span>


  

0 0
原创粉丝点击