面试阵容
第二天,陈二毛如约来到公司参加面试,但见公司名称:沃特搜古德。啥意思,二毛一脸懵。
前台妹子还是比较漂亮的,白白净净,让二毛顿生好感。
恋恋不舍的坐在前台妹子安排的面试房间,二毛打量了下公司,但见:窗明几净,灯光明亮,嗯不错。
过了一会进来几个人,一个是老猫,坐一边,一个干练的女性,坐一边,另一个颇为威严的中年,坐中间。毫无悬念,老猫是软件部老大需要过来,中间的肯定是老板,旁边的应该是人力资源。
单刀直入
开始是老猫不痛不痒的问了几个基础的计算机常识,例如C语言形参实参啊、Http请求方式啊、做过的项目啊,由于昨天晚上准备了,二毛答的还可以。
然后突然老板就开始问了一句:熟不熟悉设计模式。
果然来了!二毛直接硬气回答:那还是比较熟悉的。
老板又问,单例模式的应用场景说说,二毛那个激动啊,昨天晚上看书有点蒙圈,但是第一个看到的单例模式印象还是很深刻的。
单例模式应用场景
二毛开始回答,以咱们公司来说吧:
单例模式能保证公司只有一个财务部可以出钱。
单例模式能保证公司只有仓储可以存储待发货设备。
单例模式可以保证公司只有一个电源总开关,控制整个公司的设备。
营业执照也是单例,相当于公司在国家的企业信息库注册了一个单例。
法律合规的老婆也是单例,也就是说婚姻法的一个重要目的就是实现配偶的单例,以便实现配偶资源的合理配置。
哈哈…,最后一个案例是二毛的神来之笔,果然包括老板在内的三人捧腹大笑。
其中,尤数老猫笑的最为放荡,二毛当时就想给他两拳让他冷静冷静。
单例模式的代码
老板说,来段单例模式的代码吧。OK,那就以只能有一个仓库(warehouse)为例吧。
/**
* 仓库类--采用单例模式设计,保证只有一个实例
*/
public class Warehouse {
private static Warehouse warehouse = new Warehouse();
private Warehouse() {
}
public static Warehouse getInstance() {
return warehouse;
}
public static void main(String[] args) {
Warehouse w1 = Warehouse.getInstance();
Warehouse w2 = Warehouse.getInstance();
// 不论如何获取,只有一个实例
System.out.println(w1 == w2);
}
}
老板说,讲讲吧,为啥这个能保证单例。二毛于是开始讲解:
- 通过
static
指定了warehouse为静态变量,在类加载的时候就已经存在。由于它是静态变量,所以只存在一个。理论联系实践的话,就是说我们公司内只能有一个真实存在的仓库。 - 通过
private
将构造函数定义为私有,这样就没法用new Warehouse()
来生成Warehouse实例,所以Wasehouse实例只有一个,就是静态变量指向的那个。理论联系实践的话,就是说不允许任何员工私自建立仓库。 - 最后一个静态方法
getInstance
是为了获取静态变量。理论联系实践的话,所有要使用仓库的时候,必须通过一个统一的开放途径去找这个仓库,找到的仓库也必然是唯一的。
美梦来临
老板听完静默不语,过了一小会说:没想到咱们这个小地方还能同时产生你和老猫两个这样的人才!明天来上班的吧。
啊,二毛激动的要跳起来了,终于可以正儿八经的工作了,还是传说中的程序员岗位,这种feel也太爽了!
“但是”,突然老板又说了一句话,你去车间干主任吧,我觉得你是个管理人才。。。
二毛:我倒~~
老猫:我倒~~
老板:嘿嘿,人才!
晚上二毛做了一个梦,梦里二毛开着敞篷跑车,怀里搂着美女,美女的长发被风吹起,几缕发丝飘过二毛耳畔…
人生赢家,不过如此~~
美梦最美的不是成真,而是憧憬的时候吧。
来源:oschina
链接:https://my.oschina.net/u/4361896/blog/4899859