微信号:ac_aric

介绍:通俗幽默为您讲解编程技术!涉及JavaScript,Web,Java,架构,HTTP,JSON,MVC等方面

笑谈设计模式

2015-04-08 13:05 Aric

截止目前,已经讲了16个设计模式,本篇就讲剩下的4个模式吧。


17.状态模式(这个情况交给我处理)

小明在人事岗位上继续发展,最近突然很多人请假,由于公司人员结构复杂(实习生,正式工,外包员工,借调员工,孕妇...)。这些都要一一查证人事资料,才能确认相应请假是否生效。很浪费小明的时间,最近,公司有一个屌丝程序员建议小明按照状态模式区分员工,出现了如下情景:

1. 小明把公司所有员工标记状态 (实习生,孕妇,外包员工);

2. 员工状态可以随意转换,例如:实习生=>正式员工 实习生=>孕妇 ;

3. 每个状态下都固定好请假流程,比如:外包员工,直接和外包公司进行沟通确认, 正式员工则通知部门领导审批;

4. 每次有人请假,直接按照员工状态实行对应的处理;

针对事务的每个状态,封装不同的行为,避免很多的If Else,同时更具扩展性。


18. 解释器模式(打是亲,骂是爱!!)

解释器模式应用最多的就是公式解析器。按照一定的语法进行解析。

很多人看过中国的抗日神剧,里面很多NB的游戏队长,使用鹧鸪叫来传递信息,至于传递的什么信息,请看字幕!!!谁TMD知道!!

解释器模式,就是按照一定的格式解析一段输入。比如输入打,代表亲!输入骂,代表爱!!输入X,代表么么哒~~(原谅我的卖萌)。

目前Java中有很多开源的公式解析器,比如:Expression4J,MESP,JEP.直接使用即可,避免重复造轮子。


19. 享元模式(公共的,咱就一起用)

小明最近上班,特别特别郁闷,公司周围都没有对胃口的饭点。什么卤味双拼,什么三及第,什么牛肉牛筋双拼......都TMD的提不起任何兴趣好不。还有一些“又贵又难吃”,TMD的就不讲了!没得办法,小明最近只能找个女朋友,做便当吃,满满的幸福!

但是小明也遇到了问题!!! 小明中午带的番茄鸡蛋,竟然吃出了酸辣土豆丝的赶脚。为什么呢??因为公司微波炉,很多同事的饭放在一起加热~~~味道傻傻分不清楚了,小明想,如果公司能一人配一台微波炉就好了......

微波炉,这个小小的事物就是享元模式最好的体现,公司同事所有人公用一个,还有其他的,比如:饮水机....

享元模式,公共的就一起用 (一个人一台微波炉.....根本没办法满足你,成本太高)


20. 桥梁模式/桥接模式(自己做成本太大了)

小明所在的公司是一个软件公司。通常公司第一季度会有很多合同,需要招聘很多的研发人员,但是到第二季度后,合同量相应减少,研发人员却不能直接炒掉,导致人力资源浪费。BOSS为这事烦恼,小明献上一注意:

1. 把部分的合同外包到其他公司;

2. 外包公司处理相应的成本,而自己公司不用考虑人力资源的浪费问题;

分离本该自己处理的业务,使业务更具灵活性(引入其他接口处理,而不是使用继承)


本篇到此为止,已经讲完常用的设计模式了。可能读者会有疑问,常用的模式不是23个吗?其他的比如:抽象工厂,原型模式都是基于模式稍加修改,思想是一样的,这里就不多讲了。


本篇之后,会有一个总结篇,总结篇同样不涉及任何实际的技术。主题为,程序员与设计模式 ,敬请期待。

 
Aric 更多文章 React大热?再来泼冷水! 写不完的工作总结? 来~聊聊绩效考核 Java开发必用的工具包 “云”到底是什么 Bootstrap VS Semantic VS Foundation
猜您喜欢 Rancher容器网络-floating ip解决方案 拆轮子系列:拆 Okio PHP中curl的应用 谷歌内部录音流出!Alpha Go早已预知比赛结果,并预言人类将灭绝! Python基础教程4:变量类型