java单例模式的简单应用例子

单例模式:用于保证在程度的运行期间某个类有且只有一个实例

优势:在于尽可能节约资源

应用场景:还不太懂,希望懂的前辈们补充

————————————————————

通过修改构造方法的访问权限实现单例模式

比如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.lixiyu;
public class TestExample1{
public static void main(String[] args){
    System.out.println("创建神马1对象:");
    SHENMA shenma1=SHENMA.getInstance();//创建对象
    shenma1.getName();//输出名字
    System.out.println("创建神马2对象:");
    SHENMA shenma2=SHENMA.getInstance();//创建对象
    shenma2.getName();//输出名字
    System.out.println("创建神马3对象:");
    SHENMA shenma3=SHENMA.getInstance();//创建对象
    shenma3.getName();//输出名字
}
}

这时需要创建一个SHENMA的CLASS类来说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.lixiyu;
public class SHENMA {
private static SHENMA shenma=null;//声明一个类SHENMA的引用
private SHENMA(){//将构造方法私有化
    }
public static SHENMA getInstance(){
    if(shenma==null){
        shenma=new SHENMA();
    }
    return shenma;
}
public void getName(){
    System.out.println("这是神马:好东西");
}
}

只需要new一次创建实例就可以解决问题了

1
2
3
4
5
6
public static SHENMA getInstance(){
    if(shenma==null){
        shenma=new SHENMA();
    }
    return shenma;
}

单例模式还有很多种写法,这只是其中之一,在以后学习里遇到再记录下来。


本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1304452,如需转载请自行联系原作者


上一篇:阿里面试官:你的项目是如何处理重复请求、并发请求的?


下一篇:C++第9周项目1 - 实现复数类中的运算符重载