从故事到代码
小人国里有一个积木山,这个积木山很大很脆弱。很大的意思是即使是有人进山了,别人也不知道;很脆弱的意思是一次只能有一个人进山施工,否则搭好的积木就有可能坍塌。
那么问题来了,怎么做才能保证不出问题呢?
一种方法是,在积木山周围设置围墙,就像特朗普一样。但是这个开销太大了,小人国承担不了。于是大家两个想了个办法:
- 在某一个进山路口设置一个工牌。
- 进山搭积木必须先到这个路口取得这个工牌
- 工作完成之后在把工牌交回
小人国是一个讲诚信的国家,大家都遵守这个规则,所以搭建积木山的工作得以顺利进行。本来要设置围墙那么大的工程,一个工牌就解决了,多么巧妙的方法!
但是天长日久还是会发生一些事情,导致搭积木工程出问题:
有人忘了取工牌就进山搭积木去了,这样后来的人就依旧可以取得工牌进山搭积木,结果可以想像:很有可能导致积木山倒塌。
或者有人进山时正常取得了工牌,但出山时忘了归还。结果是明明山里没有人,但是谁也没有办法进山。虽然山不会塌,但工程却是没有办法继续。
还有一种情况上帝(更有可能是程序员)创建小人国的时候弄了两个工牌。小人们虽然严格遵守规则,进山搭积木的人还是会超过一个人,照样可能导致积木山倒塌。
看了这个故事,再看下面的代码,你想到什么了?

写在文章的最后
 
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】
 
 

 
 
 
                     
            
        













 
                    

 
                 
                    