static关键字作用于变量时,该变量在内存中只有一个拷贝,由此特点,衍生出设计模式当中一种经典的设计模式---单例模式。
单例模式(1):
--单例模式,又名单态模式,Singleton。
--限定某一个类在整个程序运行过程中,只能保留一个实例对象在内存空间。(对象是new出来的,那么new的话限定只能new一次不能new多次。) 内存空间中,一个类只有一个对象存在,这就是单例模式。
--单例模式是GoF的23种设计模式(Design Pattern)中经典的一种,属于创建型模式类型。
单例模式(2):
--设计模式:在软件开发过程中,经过验证的,用于解决在特定环境下的、重复出现的、特定问题的解决方案。
--设计模式起源于建筑领域。Alexander总结了建筑行业的设计模式。
--1995年Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides(GoF)合著的《设计模式--可复用面向对象软件基础》总结了常见的23种设计模式,包括:创建型、结构型和行为型。
其中,创建型设计模式:对象如何创建
结构型设计模式:比如说有一些复杂的对象,可能这个对象里面包含好几个对象,像这种东西如何创建
行为型设计模式:这个对象的方法怎么运行
单例模式(3):
单例模式:保证一个类有且只有一个对象。那么如何保证呢?
(1)采用static来共享对象实例
(2)采用private构造函数(让构造函数私有化),防止外界进行new操作(因为采用static保证所有对象共享同一块内存,但是防止不了别人对类进行new操作)
查看Singleton.java
在外界,出了(Singleton.java)就不能new一个Singleton对象了,只能通过调用Singleton.getInstance()方法拿到这个对象(而且是同一个对象)。