JAVA SE 025 单例模式详解.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:3 大小:15KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

JAVA SE 025 单例模式详解.doc

JAVASE025单例模式详解.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JavaSE025单例模式详解一、接口接口中所声明的方法都是抽象方法。接口中的方法都是public的。接口中可以定义成员变量,接口中的成员变量都是public、final,static的。解说:接口主要还是起到一个约定的作用,告诉实现这个接口的类,必须要实现这个接口里面的方法,方法名是什么,返回类型是什么。参数是什么,主要起到这样一种约定的作用。因此很少在接口里面去定义属性。3、一个类不能既是final的,又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承,而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final的,又是abstract的。二、设计模式(DesignPattern)解说:设计模式大量的依托多态。1、单例模式(Singleton)解说:单例模式就是单个实例的模式。表示这个类只能生成一个实例,如果一个类在生成对象的时候,只要是new一次就生成一个对象。它就不符合单例模式的要求。单例模式要求类在new的时候,或者说用其他办法来生成对象的时候,不管怎么生成,最后只能出来一个对象。下次再去生成的时候,还是返回之前返回的对象。不会生成新的对象。这就是单例模式的一个想法。表示一个类只会生成一个唯一的一个对象。private是在内的内部可以去访问的。通过这一点可以限制类在类的外部不可以访问内内部的。publicclassSingletonTest{publicstaticvoidmain(String[]args){Singletonsingleton1=Singleton.getIntance();Singletonsingleton2=Singleton.getIntance();System.out.println(singleton1==singleton2);}}classSingleton{privatestaticSingletonsingleton=newSingleton();privateSingleton(){}publicstaticSingletongetIntance(){returnsingleton;}}方式二:publicclassSingletonTest{publicstaticvoidmain(String[]args){Singletonsingleton1=Singleton.getIntance();Singletonsingleton2=Singleton.getIntance();System.out.println(singleton1==singleton2);}}classSingleton{privatestaticSingletonsingleton;privateSingleton(){}publicstaticSingletongetIntance(){if(singleton==null){singleton=newSingleton();}returnsingleton;}}解说:在多线程环境中,第二种方式可能不是单例的。为什么要加static,是让外面其他的地方不使用对象,而使用类的名字就可以去调用,这是为什么要加static。而属性加上static是因为getInstance()方法加了static,静态方法只能访问静态的属性,即静态的只能访问静态的。private构造方法是为了防止在类的外部使用new关键字来生成对象。