参考网址:http://www.runoob.com/design-pattern/singleton-pattern.html
1.目的:保证一个类仅有一个实例,并提供一个访问它的全局访问点。(比如世界只有一个月亮,党只有一个主席)
2.
优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。
缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
下面知识简单的操作例子
package Unit1; /** 单例模型;http://www.runoob.com/design-pattern/singleton-pattern.html*/ public class SingleObject {//创建SingleObject的一个对象private static SingleObject instance = new SingleObject();//让构造函数为private,这样该类就不会被实例化private SingleObject() {}//获取唯一可用的对象public static SingleObject getInstance(){return instance;}public void showMessage(){System.out.println("你好!!!");}}
package Unit1;public class SingletonPatternDemo {public static void main(String[] args) {//不合法的构造函数//编译错误:构造函数SingleObject()是不可见的//SingleObject object = new SingleObject();//获取唯一可用的对象SingleObject object = SingleObject.getInstance();//显示信息咯 object.showMessage();} }
结果为: