`
f303153041
  • 浏览: 44980 次
社区版块
存档分类
最新评论

JAVA设计模式之单例模式

阅读更多
懒汉式:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;

/**
*
* @author fxa
*/
public class Singleton {
    private static Singleton instance =null;
    private Singleton(){};
    private String name;

    public static  Singleton getInstance() {
        if(instance == null){
           instance = new Singleton();
        }
        return instance;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
饿汉式

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;

/**
*
* @author fxa
*/
public class Singleton1 {
    private Singleton1(){}
    private static Singleton1 instance = new Singleton1();
    public static Singleton1 getInstance(){
        return instance;
    }
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
   
}

测试

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package singleton;

/**
*
* @author fxa
*/
public class Client {
    public static void main(String[] args){  
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        s1.setName("fengxiang");
        System.out.println(s1 == s2);
        System.out.println(s2.getName());
       
        Singleton1 s11= Singleton1.getInstance();
        Singleton1 s12 = Singleton1.getInstance();
        s11.setAge(22);
        s12.setAge(23);
        System.out.println(s11 == s12);
        System.out.println(s11.getAge()+" "+s12.getAge());
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics