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

为了巩固上一篇所写的内容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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值