设计模式

Reading time ~1 minute

设计模式。 横刀侧目,落叶飞花。虽不能至,心向往之。

扯淡

总有人告诉我,说没有十万行代码,不要去碰设计模式。

也有人说设计模式没有用。

后来我看了《代码大全》里面关于设计模式的讨论。

设计模式提供现成的抽象来减少复杂度 如果你说,“这段代码了使用了Factory Method来创建派生类的实例, ”那么你项目中的其他程序员就会明白,这段代码这段代码涉及到了一组相当丰富的交互关系以及编程协议。 在你提及到了Factory Method这个设计模式时,所有相关的信息都被唤醒了。 …

我突然恍然大悟。

设计模式不仅仅是构建鲁棒的代码给自己方便使用,更是减少沟通成本等一系列琐碎的事情的办法。

试着想两个程序员,刚接触。想探探虚实。

赵甲轻描淡写地说,“今天刚来熟悉下公司的代码,这段代码是策略模式实现的推荐系统,我们试用几种推荐算法,你看下?”

孙乙很快的根据策略模式找到每个算法具体实现。

过了一会孙乙说,“可以了。”

赵甲问,“什么可以了。”

“大概了解了。”

“你觉得现在用的那种怎么样?”赵甲放下了茶杯。

“快。”

“他本来就很快,你知道,此法出自果壳架构师之手。”

“哎。”

“怎的?”赵甲问。

“虽快。还不够快。”孙乙。

天下武功,唯快不破。孙乙懂,赵甲更懂。

赵甲愣住,结巴着说,“你等下,这是我前两天实现的一个。 有点问题…但是速度能比这个快一倍。”

孙乙笑了。

孙乙知道。

这像什么?像古龙的武侠。

手中无剑,心中有剑。武功极致,一花一木,亦可为剑。

刚接触设计模式,却向往剑仙。

分类

1. 创建型模型  
简单工厂 simple_factory
抽象工厂 abstract_factory
建造者 builder
工厂方法 factory_method
原型 prototype
单例 singleton
2. 结构型模型  
适配器 adapter
桥接 bridge
组合 composite
装饰 decorator
外观 facade
享元 flyweight
代理 proxy
3. 行为型  
观察者 observer
模板方法 abstract
命令 command
状态 state
责任链 chain_of_responsibility
解释器 interpreter
中介者 mediator
访问者 visitor
策略 strategy
备忘录 memento
迭代器 iterator
-->

2015

现在是正月初八,情人节的后一天,这是每年都会写的总结。 Continue reading

状态模式

Published on September 09, 2015

报表中心

Published on May 12, 2015