参考网址: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(); } }
结果为: