加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java设计模式——单例设计模式

发布时间:2020-12-15 06:49:58 所属栏目:Java 来源:网络整理
导读:/* 设计模式:对问题行之有效的解决方式。其实它是一种思想。 1,单例设计模式。 ?? ?解决的问题:就是可以保证一个类在内存中的对象唯一性。 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。 如何保证对象唯一性呢? 1,不允许其他程


/*
设计模式:对问题行之有效的解决方式。其实它是一种思想。

1,单例设计模式。
?? ?解决的问题:就是可以保证一个类在内存中的对象唯一性。

必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。

如何保证对象唯一性呢?
1,不允许其他程序用new创建该类对象。
2,在该类创建一个本类实例。
3,对外提供一个方法让其他程序可以获取该对象。

步骤:
1,私有化该类构造函数。
2,通过new在本类中创建一个本类对象。
3,定义一个公有的方法,将创建的对象返回。

下面四个代码可放在一个文件中,也可放在不同的文件。

main函数在singleDemo中,建议放在同一个文件,这样子也不需要改动代码即可运行
*/

 1 //饿汉式
 2 class Single类一加载,对象就已经存在了。
 3 {
 4     private static Single s = new Single();
 5 
 6     private Single(){}
 7 
 8     public static Single getInstance()
 9     {
10         return s;
11     }
12 }
//饿汉式

懒汉式
class Single2类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。
 3             延迟加载形式。 
 4  5     static Single2 s = null;
 6 
 7      Single2(){}
 8 
 9      Single2 getInstance()
10 11         if(s==)
12             s =  Single2();
13         14 15 }
//懒汉式

class Test
 3     int num;
 4 
static Test t =  Test();
 Test(){}
 Test getInstance()
 8  9          t;
11     void setNum( num)
12 this.num =15      getNum()
16 17         18 19 
20 }
Test

  SingleDemo
static void main(String[] args) 
 5         Single s1 = Single.getInstance();
 6         Single s2 = 8         System.out.println(s1==s2);
 9         
        Single ss = Single.s;
11 
        Test t1 = new Test();
13         Test t2 = new Test();
14         Test t1 = Test.getInstance();
15         Test t2 =16         t1.setNum(10);
17         t2.setNum(20        System.out.println(t1.getNum());
19         System.out.println(t2.getNum());
20 21 }
SingleDemo

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读