java(十三)【面向对象】单例设计模式(饿汉式)

设计模式:解决某一类问题最行之有效的方法

单例设计模式:解决一个类中在内存只存在一个对象

想要保证对象唯一:

  1. 为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象
  2. 为了其他程序可以访问到该类对象,只好在本类中,自定义一个对象
  3. 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式

这3部怎么用代码体现呢?

  1. 将构造函数私有化
  2. 在类中建立一个本类对象
  3. 提供一个方法可以获取到该对象

先初始化对象,Singdemo类一进内存,就已经创建好了对象

 1 class singledemo{
 2     private  int num;
 3     public void  setnum(int num){
 4         this.num=num;
 5     }
 6     public int getnum(){
 7         return num;
 8     }
 9     private singledemo(){}
10     private static singledemo s=new singledemo(); //内存中至始至终只有一个对象
11      public static singledemo getsSingledemo(){
12          return  s;
13      }
14 }
15 public class Single {
16 
17     public static void main(String[] args) {
18         singledemo s1 =singledemo.getsSingledemo();
19         singledemo s2 = singledemo.getsSingledemo();
20         s1.setnum(22);
21         System.out.println(s2.getnum());
22     }
23 }

运行结果:

    

图解如下:

  

 当需要将该事物的对象保证在内存中唯一时,采用以上3部曲。

示例:

 1 class student{
 2     private int age;
 3     public void setage(int age)
 4     {
 5         this.age=age;
 6     }
 7     public int getage(){
 8         return age;
 9     }
10     static student s=new student();
11     public static  student getStudent(){
12         return s;
13     }
14 }
15 public class Single {
16     public static void main(String[] args) {
17         student s1 = student.getStudent();
18         student s2=student.getStudent();
19         s1.setage(22);
20         System.out.println(s2.getage());
21     }
22 }

 

posted @ 2015-08-31 09:33  花花妹子。  阅读(122)  评论(0)    收藏  举报