从故事到代码
小人国里有一个积木山,这个积木山很大很脆弱。很大的意思是即使是有人进山了,别人也不知道;很脆弱的意思是一次只能有一个人进山施工,否则搭好的积木就有可能坍塌。
那么问题来了,怎么做才能保证不出问题呢?
一种方法是,在积木山周围设置围墙,就像特朗普一样。但是这个开销太大了,小人国承担不了。于是大家两个想了个办法:
-
在某一个进山路口设置一个工牌。
-
进山搭积木必须先到这个路口取得这个工牌
-
工作完成之后在把工牌交回
小人国是一个讲诚信的国家,大家都遵守这个规则,所以搭建积木山的工作得以顺利进行。本来要设置围墙那么大的工程,一个工牌就解决了,多么巧妙的方法!
但是天长日久还是会发生一些事情,导致搭积木工程出问题:
有人忘了取工牌就进山搭积木去了,这样后来的人就依旧可以取得工牌进山搭积木,结果可以想像:很有可能导致积木山倒塌。
或者有人进山时正常取得了工牌,但出山时忘了归还。结果是明明山里没有人,但是谁也没有办法进山。虽然山不会塌,但工程却是没有办法继续。
还有一种情况上帝(更有可能是程序员)创建小人国的时候弄了两个工牌。小人们虽然严格遵守规则,进山搭积木的人还是会超过一个人,照样可能导致积木山倒塌。
看了这个故事,再看下面的代码,你想到什么了?
写在文章的最后
既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。
本公共号的成长需要您的支持!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】