使用设计模式出任CEO迎娶白富美(3)--一番对单例模式的讲解让老板熨帖

面试阵容

第二天,陈二毛如约来到公司参加面试,但见公司名称:沃特搜古德。啥意思,二毛一脸懵。

前台妹子还是比较漂亮的,白白净净,让二毛顿生好感。

恋恋不舍的坐在前台妹子安排的面试房间,二毛打量了下公司,但见:窗明几净,灯光明亮,嗯不错。

过了一会进来几个人,一个是老猫,坐一边,一个干练的女性,坐一边,另一个颇为威严的中年,坐中间。毫无悬念,老猫是软件部老大需要过来,中间的肯定是老板,旁边的应该是人力资源。

单刀直入

开始是老猫不痛不痒的问了几个基础的计算机常识,例如C语言形参实参啊、Http请求方式啊、做过的项目啊,由于昨天晚上准备了,二毛答的还可以。

然后突然老板就开始问了一句:熟不熟悉设计模式。

果然来了!二毛直接硬气回答:那还是比较熟悉的。

老板又问,单例模式的应用场景说说,二毛那个激动啊,昨天晚上看书有点蒙圈,但是第一个看到的单例模式印象还是很深刻的。

单例模式应用场景

二毛开始回答,以咱们公司来说吧:

单例模式能保证公司只有一个财务部可以出钱。

单例模式能保证公司只有仓储可以存储待发货设备。

单例模式可以保证公司只有一个电源总开关,控制整个公司的设备。

营业执照也是单例,相当于公司在国家的企业信息库注册了一个单例。

法律合规的老婆也是单例,也就是说婚姻法的一个重要目的就是实现配偶的单例,以便实现配偶资源的合理配置。

哈哈…,最后一个案例是二毛的神来之笔,果然包括老板在内的三人捧腹大笑。

其中,尤数老猫笑的最为放荡,二毛当时就想给他两拳让他冷静冷静。

单例模式的代码

老板说,来段单例模式的代码吧。OK,那就以只能有一个仓库(warehouse)为例吧。

/**
 * 单例模式--仓库
 */
public class Warehouse {
    
    
	private static Warehouse warehouse = new Warehouse();

	private Warehouse() {
    
    

	}

	public static Warehouse getInstance() {
    
    
		return warehouse;
	}
}

老板说,讲讲吧,为啥这个能保证单例。二毛于是开始讲解:

  1. 通过static指定了warehouse为静态变量,在类加载的时候就已经存在。由于它是静态变量,所以只存在一个。
  2. 通过private将构造函数定义为私有,这样就没法用new Warehouse()来生成Warehouse实例,所以Wasehouse实例只有一个,就是静态变量指向的那个。
  3. 最后一个静态方法getInstance是为了获取静态变量。

美梦来临

老板听完静默不语,过了一小会说:没想到咱们这个小地方还能同时产生你和老猫两个这样的人才!明天来上班的吧。

啊,二毛激动的要跳起来了,终于可以正儿八经的工作了,还是传说中的程序员岗位,这种feel也太爽了!

“但是”,突然老板又说了一句话,你去车间干主任吧,我觉得你是个管理人才。。。

二毛:我倒~~

老猫:我倒~~

老板:嘿嘿,人才!

晚上二毛做了一个梦,梦里二毛开着敞篷跑车,怀里搂着美女,美女的长发被风吹起,几缕发丝飘过二毛耳畔…

人生赢家,不过如此~~

美梦最美的不是成真,而是憧憬的时候吧。

UML图

单例模式就一个类,比较简单,不再详述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/woshisangsang/article/details/108212720