Skip to content

Latest commit

 

History

History
27 lines (25 loc) · 3.04 KB

175、23 种设计模式应用场景?.md

File metadata and controls

27 lines (25 loc) · 3.04 KB

175、23 种设计模式应用场景?

设计模式是一种被广泛应用于软件设计中的经验总结和最佳实践。以下是常见的23种设计模式及其应用场景:

  1. 单例模式:需要确保一个类只有一个实例时,例如配置类、数据库连接类等。
  2. 工厂模式:需要根据不同的参数创建不同的对象时,例如不同类型的数据库连接、日志记录器等。
  3. 抽象工厂模式:需要创建一组相关的对象时,例如不同类型的 UI 控件、不同类型的主题等。
  4. 建造者模式:需要创建复杂对象时,例如汽车、电脑、房屋等。
  5. 原型模式:需要创建大量相似对象时,例如游戏中的敌人、粒子等。
  6. 适配器模式:需要将一个类的接口转换成另一个类的接口时,例如兼容不同版本的 API、使用第三方库等。
  7. 桥接模式:需要将抽象部分和实现部分分离开来时,例如不同类型的图形界面控件、不同类型的数据存储方式等。
  8. 组合模式:需要以树形结构组织对象时,例如目录结构、图形界面中的控件等。
  9. 装饰器模式:需要动态地给对象添加额外的功能时,例如添加日志、缓存等。
  10. 外观模式:需要简化复杂系统的接口时,例如封装底层库、封装复杂的业务逻辑等。
  11. 享元模式:需要共享大量细粒度对象时,例如字符串池、对象池等。
  12. 代理模式:需要控制对原始对象的访问时,例如权限控制、远程访问等。
  13. 职责链模式:需要将请求发送给多个对象时,并动态确定哪个对象处理该请求时,例如日志记录器、异常处理器等。
  14. 命令模式:需要将操作封装成对象,并支持撤销、重做等操作时,例如 GUI 应用中的操作历史记录、文本编辑器中的撤销、重做操作等。
  15. 解释器模式:需要解释一种语言或表达式时,例如正则表达式、数学表达式等。
  16. 迭代器模式:需要遍历一个对象集合时,例如集合类、文件系统等。
  17. 中介者模式:需要将多个对象之间的通信进行解耦时,例如 GUI 应用中的组件之间的交互、多人游戏中的玩家之间的交互等。
  18. 备忘录模式:需要保存和恢复对象的状态时,例如文本编辑器中的撤销、重做操作等。
  19. 观察者模式:需要实现对象之间的消息通信时,例如事件驱动的 GUI 应用、发布订阅模式等。
  20. 状态模式:需要根据对象的状态改变其行为时,例如游戏中的角色状态、多线程中的任务状态等。
  21. 策略模式:需要在运行时根据不同的情况选择不同的算法时,例如排序算法、加密算法等。
  22. 模板方法模式:需要定义一个算法的框架,并在子类中实现具体的步骤时,例如 GUI 应用中的生命周期、游戏中的角色行为等。
  23. 访问者模式:需要对一组对象执行相同的操作时,例如编译器中的 AST、图形界面中的控件等。