设计模式。 横刀侧目,落叶飞花。虽不能至,心向往之。
扯淡
总有人告诉我,说没有十万行代码,不要去碰设计模式。
也有人说设计模式没有用。
后来我看了《代码大全》里面关于设计模式的讨论。
设计模式提供现成的抽象来减少复杂度 如果你说,“这段代码了使用了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 |