黑马程序员---单例模式

来源:互联网 发布:北京快3遗漏数据统计 编辑:程序博客网 时间:2024/06/05 19:38


------- android培训、java培训、期待与您交流! ----------------

设计模式,为了解决开发中的实际问题出现的思想
单例:解决一个类的对象,在内存的唯一性。这个类的对象,只有一个
实现单例设计模式的步骤:
  A. 私有修饰构造方法
  B. 在本类的成员位置,new自己类的对象
  C. 提供一个静态方法,返回本类的对象

如果其他程序,需要这个类的对象,不能去new ,通过方法的返回值,获取该类对象

 

饿汉式:

package cn.itcast;/* * 此类实现一个单例设计模式 * 要求Single类的对象,是唯一的 * 饿汉式 */public class Single {//私有构造方法private Single(){}  //自己类的成员位置上,创建自己类的对象private static final Single s = new Single();//提供一个公共方法,静态的,返回这个变量spublic static Single getInstance(){return s;}}

 

懒汉式:

public class Single{//私有构造方法private Single(){}//类的成员位置,定义本类类型的变量,但是不建立对象private static Single s = null;//对外提供公共的静态方法,返回对象public static Single getInstance(){if(s == null)//建立本类的对象s = new Single();return s;}}

 

测试类:


 

package cn.itcast;/* * 测试一下单例模式Single类 */public class SingleTest {public static void main(String[] args) {//获取、Single类的对象,使用静态方法,获取Single s = Single.getInstance();System.out.println(s);Single s1 = Single.getInstance();System.out.println(s1);}}


打印结果如下:

cn.itcast.Single@72ebbf5c<a target=_blank href="mailto:cn.itcast.Single@72ebbf5c">cn.itcast.Single@72ebbf5c</a>


 

 

由打印结果可见ss1的哈希值相同,

内存中只创建了一个实例对象,S S1两个引用指向一个实例对象

 


 


------- android培训java培训、期待与您交流! -----------------

 
 
 
0 0
原创粉丝点击