由面向对象的思想走进java单例模式

来源:互联网 发布:错别字检测软件 编辑:程序博客网 时间:2024/06/02 09:09

为了巩固上一篇所写的内容java面向对象之基础扫描,特写个单例模式来巩固一下知识。

关于单例模式,从“单例”二字入手,就是只能创建一个实例对象,我们在coding的过程中,也是基于此目的才来设计该模式的。

现在我们从java语言入手,开始实现我们的目标——单例模式:

public class SingleInstance {/* * private 将类变量Instance私有化, * static 对外部提供访问的途径是getInstance(),该方法 * 是静态方法 */private static SingleInstance  instance;/** * 将构造方法私有化防止在该类之外任意new 对象; * (创建对象必须调用构造函数) */private SingleInstance(){}/** * 外部不能new对象,我们只能给人家提供一个; * 这里用到public的理由不必阐述; * static的原因是因为外部不能new 对象,即:不能通过(对象.方法名)的方式来访问, * java中给我们提供了静态成员的访问方式:(类名.方法名)  * @return */public static SingleInstance getInstance(){if(instance == null){instance = new SingleInstance();}return instance;}}
别小看这个单例模式,正可谓是:麻雀虽小五脏俱全;

(1)首先面向对象的三大特性:封装;

(2)创建对象的方式:new + 构造方法;

(3)java中的访问权限修饰符;

(4)访问类成员的两种方式:

a.对象.成员;

b.类名.成员;(static关键字)

对于面试的小伙伴,面试官让你写个单例模式,不用慌,也不用死记硬背,就根据java的语言特点按照正常的逻辑推理就OK啦。

1.私有化构造函数(private);

2.选用类名.成员的方式让外部访问(static);

3.记得跟人家留条活路啊.

In a word,private + static

!!!

PS:上述的单例模式在多线程上,会出现问题;有兴趣可以自行深入学习一下;

 

1 0
原创粉丝点击