`
aric_chen
  • 浏览: 9033 次
文章分类
社区版块
存档分类
最新评论

笑谈设计模式(第三篇)

 
阅读更多


截止目前,已经讲了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个吗?其他的比如:抽象工厂,原型模式都是基于模式稍加修改,思想是一样的,这里就不多讲了。

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

截止目前,已经讲了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个吗?其他的比如:抽象工厂,原型模式都是基于模式稍加修改,思想是一样的,这里就不多讲了。

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics