Ø单态模式的定义:
ØSingleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Ø在项目的很多地方都会用到它,比如说数据库的链接。
Ø使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
final只能声明一次
因为是static private 封装,以免外部修改
package com.chen.designpattern;
class Single{
private Single(){}
private static final Single s1 = new Single();
public void Say(){
System.out.println("我开始说话了...");
}
public static Single getSingleInstance(){
return s1;
}
}
public class SingletonDemo {
public static void main(String[] args) {
Single s = Single.getSingleInstance();
s.Say();
}
}
class Single{
private Single(){}
private static final Single s1 = new Single();
public void Say(){
System.out.println("我开始说话了...");
}
public static Single getSingleInstance(){
return s1;
}
}
public class SingletonDemo {
public static void main(String[] args) {
Single s = Single.getSingleInstance();
s.Say();
}
}
//2
package com.chen.designpattern;
class Single{
private Single(){}
private static /*final*/ Single s1;// = new Single();
public void Say(){
System.out.println("我开始说话了...");
}
public static Single getSingleInstance(){
if(s1 == null)
{
s1 = new Single();
}
return s1;
}
}
public class SingletonDemo {
public static void main(String[] args) {
Single s = Single.getSingleInstance();
s.Say();
}
}
class Single{
private Single(){}
private static /*final*/ Single s1;// = new Single();
public void Say(){
System.out.println("我开始说话了...");
}
public static Single getSingleInstance(){
if(s1 == null)
{
s1 = new Single();
}
return s1;
}
}
public class SingletonDemo {
public static void main(String[] args) {
Single s = Single.getSingleInstance();
s.Say();
}
}