java基础——单例设计模式

来源:互联网 发布:算法图解 pdf 编辑:程序博客网 时间:2024/06/06 20:33

设计模式:解决某一类问题的一种思想,是一种行之有效的解决方式 一共有23中思想模式;

      单例设计模式:

           解决的问题:保证一个类的对象在内存中的唯一性

           应用的场景:多个程序都在操作同一个配置文件时,在程序A操作后,程序B要知道并继续基于A操作后的结果进行操作,前 提,数据都存储在配置文件的对象中,要求程序A和程 序B操作的配置文件对象是同一个

           怎么实现呢? 怎么可以保证这个类只能产生一个对象呢?

      思路:

1、问题是其他程序都可以通过new创建该类的对象,无法控制数量,所以,不让其他程序new对象,

2、那第一步的问题也产生了,那其他程序不就没有对象了吗?干脆在本类中自己new一个本类对象,这样的好处,不让别的程序new,自己new,可以实现数量控制

3、 对外提供其他程序获取该对象的方式

      步骤:

1.   不让其他程序new该类对象,咋办?可以把类中的构造函数私有化,

2.   在本类中new一个对象

3.   定义一个方法返回该对象

      代码体现:

      饿汉式:class single{

           privatestatic  Single s = new Single();

           Private    single(){}

           publicstatic Single getInstance(){// 加上静态后可以直接被类名调用

           returns;

           }

 

class singleDemo{

      publicstatic void main(String[] args){

           Singles1 = Single.getInstance();

           Singles2 = Single.getInstance();

           Sop(s1==s2); // 打印结果为true;

           }

      }

懒汉式:class single{

           privatestatic  Single s =null;

           private    single(){}

           publicstatic Single getInstance(){// 加上静态后可以直接被类名调用

           if(s=null){

                 s=new  Single();

           }       

           returns;

           }   

class singleDemo{

      publicstatic void main(String[] args){

           Singles1 = Single.getInstance();

           Singles2 = Single.getInstance();

           Sop(s1==s2); // 打印结果为true;

           }

      }

0 0
原创粉丝点击