【开卷系列】一文掌握23种设计模式

59 阅读5分钟

艺术来源于生活,设计模式也来源于生活。

设计模式是软件开发过程中用于解决特定问题的可复用设计模板。由于涵盖23种设计模式的故事会非常长,请允许我简化一些描述。现在让我们来看一个奇幻世界的故事,在这个世界中,23种设计模式作为一种神秘的力量被运用在构建一个城市的过程中。

故事:梦幻城市

在一个遥远的王国里,国王想要建造一座充满奇迹的城市。为了使城市独一无二,国王召集了最优秀的建筑师们,他们对23种设计模式深知要领。这些设计模式被认为是神秘的力量,可以解决城市建设过程中的各种问题。

  1. 单例:城市中心有一座高塔,塔顶有一颗能量宝石,它为整座城市提供源源不断的能量。宝石是独一无二的,因此采用了单例模式来确保整个城市只有一个能量来源。
  2. 原型:建筑师们需要快速复制城市中的建筑物。他们采用了原型模式,通过原型建筑物的蓝图来复制出新的建筑物。
  3. 建造者:修建城市所需的城墙、桥梁和高塔等各种建筑工程都需要详细的设计。建筑师们采用建造者模式,将复杂的建筑过程分解为多个步骤,逐步完成各种建筑物的建设。
  4. 工厂方法:城市中有许多工厂,负责生产不同类型的商品。为了统一管理,工厂们采用了工厂方法模式,根据需要生产不同类型的商品。
  5. 抽象工厂:国王希望城市中的建筑风格多样化,因此委托了多家建筑公司。每家公司都实现了一个抽象工厂,生产各自风格的建筑材料和家具。
  6. 策略:城市的交通系统需要根据不同的情况选择最佳路线。策略模式被用来实现可切换的导航算法,以便在拥堵、节假日或紧急情况下选择最佳路线。
  7. 适配器:由于城市中有各种不同类型的能源插座,适配器模式被用来将各种插座转换为通用的能源接口,以满足不同设备的充电需求。
  8. 桥接:城市的通信网络需要支持多种通信协议。桥接模式被用来将抽象的通信接口与具体的通信协议实现进行解耦,使得通信网络更加灵活。
  9. 组合:城市的行政管理系统采用了组合模式,将各级行政单位组织成树形结构,以便更好地实现权限控制和信息传递。
  10. 装饰器:为了让城市建筑物更加美观,建筑师们采用了装饰器模式,通过装饰建筑物的外观来增强其功能和美感。
  11. 外观:城市的基础设施包括供水、供电、供气等多个子系统。为了简化这些系统的访问和操作,采用了外观模式,提供了统一的接口供居民使用。
  12. 享元:为了节约城市公共资源,公共设施如公园长椅、路灯等采用了享元模式,使得相同类型的设施共享内存中的对象实例。
  13. 代理:城市中的商业活动繁荣,为了保护交易安全,采用了代理模式,为购买商品和服务的客户提供中间商代理服务,以确保交易双方的利益。
  14. 模板方法:城市的教育系统实行统一的课程大纲,各个学校根据模板方法模式,遵循统一的教育流程,但可以调整具体的教学内容和方式,以适应不同学生的需求。
  15. 命令:城市的公共事务需要迅速响应。国王采用了命令模式,将各种任务封装为命令对象,分派给不同的执行者,以便迅速响应和处理各种问题。
  16. 迭代器:城市图书馆藏书丰富,采用了迭代器模式,让访问者可以方便地遍历和查找图书馆的藏书资源。
  17. 观察者:为了及时了解城市的动态,国王采用了观察者模式,让各个部门向中央汇报信息,一旦有重大事件发生,国王和相关部门能够迅速做出响应。
  18. 中介者:城市的交通系统繁忙,采用了中介者模式,通过交通指挥中心来协调各个交通枢纽的运行,确保交通顺畅。
  19. 备忘录:国王为了确保城市运作的稳定,采用了备忘录模式,记录下关键决策和事件,以便在出现问题时追溯原因并进行修正。
  20. 解释器:城市居民来自不同的地区,说着不同的语言。为了便于沟通,城市采用了解释器模式,提供了统一的翻译服务,将各种语言转换为通用语言。
  21. 状态:城市的公共设施需要根据不同的条件自动调整运行状态。通过使用状态模式,公共设施可以根据当前的环境和需求自动切换到合适的状态。
  22. 访问者:为了方便城市管理者评估和审查城市建设项目,采用了访问者模式,允许管理者访问各个建筑项目的详细信息,以便进行评估和审批。
  23. 责任链:城市的行政审批流程需要经过多个部门。为了确保审批的效率和质量,采用了责任链模式,将审批流程分为多个步骤,每个部门负责处理特定的审批任务。

如此,借助神秘的23种设计模式之力,国王和建筑师们共同建立起了一座充满奇迹的梦幻城市。城市居民们在这里和谐共处,享受着美好的生活。

详细介绍和代码示例

设计模式详细介绍 (refactoringguru.cn)

参考

  • 故事是通过ChatGPT4生成。