刚刚开始学习设计模式,现在把singleton总结一下:
1.有些时候我们希望程序中只有一个类的实例存在,比如数据库的链接代码,hibernate的sessionFactory...
2.singleton可以节省内存,因为只有一个实例存在,有利于Java垃圾回收.
3具体实现:
1.提供一个私有的构造函数。
2.提供一个静态的类实例.
3.若提供的类变量是私有的则还要提供一个静态工厂用于返回类实例便于外界访问.
下面给出一个示意代码:
public class Singleton {
private Singleton() {
}
public static final Singleton s = new Singleton();
public void say() {
System.out.println("说话了...");
}
public static void main(String[] args) {
Singleton s = Singleton.s;
s.say();
Singleton s1 = Singleton.s;
if (s == s1) {
System.out.println("s和s1是同一个对象...");
}
}
}
1.有些时候我们希望程序中只有一个类的实例存在,比如数据库的链接代码,hibernate的sessionFactory...
2.singleton可以节省内存,因为只有一个实例存在,有利于Java垃圾回收.
3具体实现:
1.提供一个私有的构造函数。
2.提供一个静态的类实例.
3.若提供的类变量是私有的则还要提供一个静态工厂用于返回类实例便于外界访问.
下面给出一个示意代码:
public class Singleton {
private Singleton() {
}
public static final Singleton s = new Singleton();
public void say() {
System.out.println("说话了...");
}
public static void main(String[] args) {
Singleton s = Singleton.s;
s.say();
Singleton s1 = Singleton.s;
if (s == s1) {
System.out.println("s和s1是同一个对象...");
}
}
}