设计模式和部落冲突
提示:如果你没有玩过《部落冲突》的话,这篇文章你应该看不懂。
《部落冲突》是一款手机游戏,设计模式是编程领域老生常谈的话题。
最近我同时在读《大话设计模式》、《JavaScript设计模式》、《React设计模式》、《设计模式之禅》这四本书。
今天我突然发现这两者之间有很多相似之处。
1. 介绍一下《设计模式》
目前主流的设计模式有 23 种,有个顺口溜:
- “单抽工建原”:
- 单例模式
- 抽象工厂模式
- 工厂模式
- 建造者模式
- 原型模式
- “桥代理组装适配器,享元回家装饰外观”:
- 桥梁模式
- 代理模式
- 组合模式
- 适配器模式
- 享元模式
- 装饰模式
- 门面模式
- “访问者写好策略备忘录,观察模板迭代的状态,命令中介解释责任链”:
- 访问者模式
- 策略模式
- 备忘录模式
- 观察者模式
- 模板方法模式
- 迭代器模式
- 状态模式
- 命令模式
- 中介者模式
- 解释器模式
- 责任链模式
2. 介绍一下《部落冲突》
《部落冲突》是一款 SuperCell 出品的,集塔防、对抗、建设于一体的手机游戏。

在游戏中,玩家可以采集或掠夺资源,用这些资源升级自己部落的防线,抵抗其他玩家的攻击。
下边是我的部落,已经 10 本了。黑色的是城墙,还有资源建筑、防御建筑、兵营之类的,别的玩家可以攻击我,如果成功会获得一部分我的资源。

当然我也可以攻击其他玩家,攻击别人需要部队,训练部队需要消耗资源。
部队有很多种类,每个角色有各自的特点和缺点。比如说:
- 野蛮人俗称 “屌丝”,造价便宜,可以使用人海战术;
- 巨人俗称 “胖子”,巨人血多,但是攻击力弱、移动速度慢;
- 炸弹人对围墙的伤害很高,但是只攻击围墙;
- 哥布林移动速度快,倾向于资源建筑,抢钱速度贼快,缺点是血实在太少了;
- 气球兵可以在天上飞,地面的迫击炮、加农炮打不到;
- ...
还有一些提供加成效果的法术药水,比如说雷电法术、狂暴法术、冰冻法术、毒药法术等等。
这个游戏的核心玩法是兵种搭配,我数了一下,现在的版本有 23 种兵、11 种法术,可想而知,这游戏数不清的套路。

下图是我在攻击别人的部落,我有 16 个气球兵,1 个女王还有一些药水,如果成功的话,我会得到 40w 金币,和 35w 圣水。

部落冲突的套路很多,但是玩家常用的套路就那么几个,像是“天胖流”、“狗球石法流”、“龙球流”... 这种玩法,我发现和设计模式是一样样的。
3. 有哪些共同点
模式也可以叫套路、打法、流派,那么:
- 设计模式中的 “单例模式” 也可以叫 “单例流”,“观察者模式” 也可以叫 “观察者流”;
- 部落冲突的 “天胖流” 也可以叫 “天胖设计模式”,“龙球流” 也可以叫 “龙球设计模式”;
模式也好,流派也好,打法也好,只是一个称谓。
模式是解决某种问题的最佳打法。在部落冲突中,模式是为了攻克敌人的防线,掠夺别人的资源;在编程中,模式是为了解决业务问题、提升代码质量。
这些模式经过前辈们的尝试验证,优化归类,最终总结出最佳实践,现在有很多现成的书籍将这些套路口口相传,传递给新一代的玩家或者程序员。
所以说,玩部落冲突实际上是在灵活组合各种设计模式,也许部落冲突的高玩很适合转行编程。
End.

浙公网安备 33010602011771号