设计模式-单例模式

【感想】

        今天学习了第一个模式,所以把自己的感想写下来。

单例模式应该是比较简单的,我觉得它就像是C++中对

一个对象的引用(也就算是对象的一个别名),无论你

调用多少次类去声明一个新的对象,如下代码:

(下面的代码是在linux下用vim编辑的,为了简化IDE对

包管理的复杂要求,我把Singleton类写成非public类的

事实上我必须这样做,因为public声明的类要以类名+java

作为文件名)

class Singleton{
    String name = null;
    private Singleton()
    {   
    }   
    public void setName(String name){
        this.name=name;
    }   
    public String getName(){
        return name;
    }   
    
    private static Singleton obj =null;
    
    public static Singleton getInstance()
    {   
        if(obj==null){
            obj = new Singleton();
        }
        return obj;
    }   
    public void printInfo(){
        System.out.println("The name is : " +name);
    }   
}
public class Test{
    public static void main(String [] args){
        Singleton obj1 = Singleton.getInstance();
        obj1.setName("Frank");
        obj1.printInfo();
    
        Singleton obj2 = Singleton.getInstance();
        obj2.setName("Jack");
        obj2.printInfo();
        //check obj1 again ..
        obj1.printInfo();
    }   
}

只需要javac编译,用java运行即可,运行结果如下:

The name is : Frank
The name is : Jack
The name is : Jack

我们可以看到,obj1第二次输出的结果与哦不obj2一样的!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值