单例模式:用于保证在程度的运行期间某个类有且只有一个实例
优势:在于尽可能节约资源
应用场景:还不太懂,希望懂的前辈们补充
————————————————————
通过修改构造方法的访问权限实现单例模式
比如
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,如需转载请自行联系原作者