单例模式(singleton)
-
引入(设计模式要明白为什么要这样写,而不是记代码,代码很少,但记不住)
-
设计一个系统,比如叫做百度,开发搜索引擎。代码如下:
class Baidu{ public void 搜索(String keyword){ } }
-
执行搜索
-
创建一个对象
-
写完上述代码,还不能做事情,需要调用搜索方法,才能开始搜索。
-
同一时间有很多很多人在使用系统,数量可达到上亿。如果每个人在搜索的时候,都创建一个对象,那么需要的空间非常大,即使集群也不一定能承受得了。但是,他们创建对象目的,只是为了调用搜索方法,进行搜索。那么,想个方案,只创建一个对象,让所有人都可用,在堆内存只开辟一个空间,每调用一次方法,临时执行一次,栈内存中执行,方法执行空间就回收了。
-
由上一条,可知,单例模式有效减少内存占用。
-
-
-
-
示例
-
不要直接在src直接创建类,即使工程就一个类,也要创建包来存放。
-
如下代码
SingleTon single = new SingleTon();
-
这种构造对象的方式,是通过代用无参构造方法实现的。每次用过new创建对象,是通过调用构造方法得到了,如果调不到构造方法,那就创建不了独享,所以把构造方法私有,就使用new创建不了了。
-
1.让构造方法私有—保证外面不可以随便创建对象
private SingleTon(){ }
-
2.单例 不是无例—在本类中的某个成员位置上创建一个唯一对象
-
构造方法:不行,私有 本身 调用不到
-
块,如下方代码,在块中写,但是外面拿不到这个对象,必须要有返回值。创建了对象也无法给别人使用
{ SingleTon singleTon =new SingleTon(
-
-
-