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