程序员思维-带你解读嫦娥奔月
众所周知嫦娥奔月是后羿与嫦娥的故事。故事中几个关键事件是:
- 后羿射日--单例模式
- 偷吃仙丹--单一职责、安全
- 吃月饼--消息的传递
- 月饼制作--代理
后羿射日
太阳照射大地,给大地以温暖,光明。本来是很正常运行舒适的,但是出了问题(bug),多出了八个太阳,这八个太阳怎么来的呢,我给你娓娓道来。本来这个系统生产了一个太阳,每天照射大地几个时辰,然后关掉一段时间,然后继续,这样循环往复,很正常的。
有一天,系统有个程序员动了一段代码,然后就不是每天就多出了一个太阳,
第一天,多了一个太阳照射,暖和了好多;
第二天,又多了一个太阳,天地亮了很多;
.....
第七天,大地太热,收不住了,想停掉太阳;
想怎么停掉太阳,想了一天
第八天,又多了一个太阳
这时候后羿作为这个系统的掌控者发现是由于程序员修改了一行代码,改这个太阳的创建模式,他不是单例了,导致每次循环的时候,都新建了一个,所以太阳无限增多,于是乎后羿先手动删除了这个多余太阳,然后重新修复了系统,也就成为了系统的拥有者。
嫦娥作为程序员鼓励师也就就位了。
偷吃仙丹
后羿掌握了系统之后就弄了很多东西,其中就有很有价值的仙丹。仙丹由系统内各个专门的对象进行制作完成。制作完成后,就要交给后羿的。但是作为程序员鼓励师目睹了整个过程,就很好奇整个仙丹有什么用,然后他就很轻而易举地拿到了仙丹,就吞下去了飞升了。
后羿把制作仙丹的任务分配了各个专门的对象制作,制作方法得到了很好的保护,但是最后没有交到自己手上,是因为没有设置安全措施,这就使得仙丹交接过程中谁都可以使用,从而仙丹被嫦娥吞服,因为拥有系统之后没有去做很好的安全管理措施
吃月饼
嫦娥不小心飞升之后在天上就很想念后羿,毕竟作为程序员鼓励师在一起日久生情了,于是他就做了后羿最喜爱吃的月饼来表达自己的相思,并把月饼扔了下来,希望后羿可以看到自己的消息然后了解相思之情,可以去天上找她。
嫦娥发布了一个消息月饼,整个月饼就代表他的相思之情,然后只有后羿知道整个意思,其他人接收到了不知道意思,这就是消息的发布与订阅。来完成消息事件的传递。
月饼制作
一段时间之后嫦娥没有等到后羿,她在想是不是自己制作的月饼太少了,没有传到后羿的信息库里,或者可能丢失了,于是嫦娥就把自己制作月饼的方法通过广播消息传递了出去。然后就有很多人去制作月饼,但是想法不一样,就制作了各种各样的月饼,不过是按照嫦娥的方法做的,所以还是叫月饼。
这个就是代理,嫦娥把自己的做月饼形成一个抽象的方法,其他人就可以根据自己的想法去实现,这就是代理的抽象和实现。
作为一名程序员,我觉得生活中各种事物,如果可以以程序语言描述之,然后所形成的方法就是最好的程序设计。然后以这种设计应用于系统那么它将是接近完美的程序设计。
程序员思维-带你解读嫦娥奔月相关推荐
- 一个非常是个程序员表白的浪漫网站(嫦娥奔月)
❤ 精彩专栏推荐
- 程序员思维修炼:如何从新手成为专家
在"职场跃迁工具:德雷福斯模型及应用2例"中,给大家分享了"德雷福斯模型": 这个模型,来自<程序员思维修炼>这本书: <程序员思维修炼> ...
- 大牛告诉你,只有突破程序员思维,才不会沦为码农!
过去我曾一直认为程序员是依靠他们的技术在编程,也是因为技术使得程序员的水平有高低之分,但随着我写代码的时间越来越长,也接触到更多的程序员,我渐渐发现程序员们其实是依靠他们所特有的程序员思维在进行编程的 ...
- 程序员思维是什么?程序员思维从哪里来?程序员思维到哪里去?
程序员思维是什么? 程序员思维从哪里来? 程序员思维到哪里去? 好吧,这是三个终极的问题.没有标准答案,也没有什么不标准的答案.我只是试图给出自己的一个思考的总结. 再解释程序员思维是什么问题这个问题 ...
- 程序员思维僵化_僵化趋势
程序员思维僵化 重点 (Top highlight) When I started this whole crazy ride, I was expecting it to die down righ ...
- 程序员思维修炼读后感
<程序员思维修炼>读后感 程序员思维修炼的这本书,主要讲了程序员不同的职业阶段,以及常见思维误区,以及解决方案,给大家在各自工作中提供一些帮助,值得阅读. 通过本书的阅读,解决了我一个很重 ...
- 跳出程序员思维:如何应对上手英文工具站的几点误区
这次给大家带来程序员如何应对上手英文工具站的几点误区,帮助大家跳出程序员思维,一起出海赚美刀 ~ ----- 小小分割线 ----- 误区一:以为参加了几次对应项目训练营,就可以赚到美刀.这样想,往往 ...
- 男程序员思维VS女程序员思维
今天下午参加了一个技术分享,产生了一些想法.本文没有什么理论性,也没有什么科学性,单纯主观感受.如果您读后有所收获,那就再好不过啦. 先说事情的流程: 第一步:一个师姐讲了讲NFS的基本概念,包括定义 ...
- 【随笔】跳出程序员思维看世界
作为程序员,我真的有时候特别想 debug 这个世界.看看这个世界究竟是怎么运行的.因为经常会遇到她的输出跟我断言的不一样,或者我觉得正常的输入,却被她判定为非法. 先分享两件事吧. 第一件事,记得去 ...
- 程序人生系列谈:《程序员》带给我的启发故事
来源 | CSDN 博客 作者 | 叶帆科技 刘洪峰 <程序员>创刊已经20余年了, 我参加工作也已经20多年了,我专职做程序员的时间和<程序员>创刊的时间几乎一样长. ...
最新文章
- python怎么做彩票概率_用Python一次性把论文作图与数据处理全部搞定!
- 深入浅出mysql唐汉名_深入浅出MySQL++数据库开发、优化与管理维护+第2版+唐汉明 -- 存储引擎 - 数据类型 - 字符集和校验规则 -...
- apple air装双系统(win7)
- Linux Kernel Makefile Test
- StyleGAN如何定制人脸生成
- nexus+7+android+5.0++wifi+代理,谷歌Nexus5吃上安卓8.0:除了WiFi全不能正常工作
- 字典树实现_trie 字典树的实现方法
- Spring的单例模式底层实现
- TortoiseGit 添加ssh key
- InfoPath 2007 常见问题
- TortoiseHg的使用
- 游戏平台搭建韩国大带宽CN2服务器哪里的比较便宜
- 利用Java实现的图片中文字识别,你学会了吗?
- nacos-server1.4.1linux和windows版本下载
- 消除oracle 中 job 的时间误差?
- 【JNLP】什么是JNLP
- 图片懒加载, Vue-Lazyload实现懒加载
- pku 1830 开关问题(构造矩阵+高斯消元)
- 计算机网络学习笔记一:基础篇
- Javascript中!!(两个感叹号,双感叹号)的含义