您的位置:首页 > 游戏 > 手游 > 武汉网络建设公司_天元建设集团有限公司楼盘_网店推广渠道有哪些_seo指的是搜索引擎

武汉网络建设公司_天元建设集团有限公司楼盘_网店推广渠道有哪些_seo指的是搜索引擎

2024/12/23 16:00:38 来源:https://blog.csdn.net/qq_35861084/article/details/143843963  浏览:    关键词:武汉网络建设公司_天元建设集团有限公司楼盘_网店推广渠道有哪些_seo指的是搜索引擎
武汉网络建设公司_天元建设集团有限公司楼盘_网店推广渠道有哪些_seo指的是搜索引擎

文章目录

      • 一、创建型模式 (Creational Patterns)
      • 二、结构型模式 (Structural Patterns)
      • 三、行为型模式 (Behavioral Patterns)
      • 小结

设计模式是软件开发中总结和提炼的一些典型问题的解决方案,主要分为三大类: 创建型模式结构型模式行为型模式。以下是 23 种设计模式的分类及详解。


一、创建型模式 (Creational Patterns)

创建型模式主要解决对象的创建问题,旨在通过某种方式灵活地创建对象。

  1. 工厂方法模式 (Factory Method)
    定义一个接口或抽象类用于创建对象,由子类决定实例化哪一个类。
  • 关键点:延迟实例化到子类。
  • 适用场景:需要创建对象,但不确定具体类型时。
  • 示例:不同的日志记录器(文件日志、数据库日志)。
  1. 抽象工厂模式 (Abstract Factory)
    提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体类。

    • 关键点:创建多个产品族对象。
    • 适用场景:一个系统要与多个产品族的产品一起工作。
    • 示例:跨平台 UI 工具包(Windows、Linux、macOS)。
  2. 单例模式 (Singleton)
    确保一个类只有一个实例,并提供全局访问点。

    • 关键点:控制实例化并提供全局访问。
    • 适用场景:需要全局唯一对象,如数据库连接池、线程池。
    • 示例:Java 中的 Runtime.getRuntime()
  3. 建造者模式 (Builder)
    将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的对象。

    • 关键点:逐步构建复杂对象。
    • 适用场景:对象构建流程复杂或步骤可变。
    • 示例:生成器模式构建复杂的文档或产品。
  4. 原型模式 (Prototype)
    通过复制已有对象来创建新对象,而不是通过实例化类。

    • 关键点:通过克隆方法复制对象。
    • 适用场景:对象的创建成本高,且实例化代价较大时。
    • 示例:Java 中的 clone() 方法。

二、结构型模式 (Structural Patterns)

结构型模式关注类和对象的组合,通过组合实现更大的结构。

  1. 适配器模式 (Adapter)
    将一个类的接口转换成客户端期望的另一个接口。

    • 关键点:接口不兼容但需协同工作。
    • 适用场景:需要使用已有类但接口不符。
    • 示例:电源适配器。
  2. 桥接模式 (Bridge)
    将抽象部分与实现部分分离,使它们可以独立变化。

    • 关键点:通过组合解耦抽象和实现。
    • 适用场景:需要独立扩展抽象和实现。
    • 示例:图形绘制系统。
  3. 装饰器模式 (Decorator)
    动态地给对象添加新的功能,而不改变其结构。

    • 关键点:装饰对象增强功能。
    • 适用场景:扩展功能但不希望修改代码。
    • 示例:Java I/O 类中的 BufferedReader
  4. 组合模式 (Composite)
    将对象组合成树形结构以表示“部分-整体”的层次结构。

    • 关键点:统一对象和组合的接口。
    • 适用场景:需要处理树形结构。
    • 示例:文件夹和文件的结构。
  5. 外观模式 (Facade)
    提供一个统一的接口,用来访问子系统中的一群接口。

    • 关键点:为复杂系统提供简单接口。
    • 适用场景:简化复杂系统的使用。
    • 示例:JDBC 中的 DriverManager
  6. 享元模式 (Flyweight)
    使用共享对象来有效支持大量细粒度对象。

    • 关键点:共享状态,减少内存消耗。
    • 适用场景:需要大量重复对象。
    • 示例:字符串常量池。
  7. 代理模式 (Proxy)
    为其他对象提供一个代理以控制对该对象的访问。

    • 关键点:控制目标对象访问。
    • 适用场景:延迟加载、权限控制等。
    • 示例:动态代理、RPC 远程调用。

三、行为型模式 (Behavioral Patterns)

行为型模式关注对象间的职责划分和协作方式。

  1. 策略模式 (Strategy)
    定义一组算法,将每种算法封装起来,并使它们可以互换。

    • 关键点:算法的可替换。
    • 适用场景:需要动态切换算法。
    • 示例:不同的支付方式实现。
  2. 模板方法模式 (Template Method)
    定义算法框架,将具体实现延迟到子类。

    • 关键点:固定框架,延迟具体实现。
    • 适用场景:算法固定,部分可定制。
    • 示例:抽象类定义通用流程。
  3. 观察者模式 (Observer)
    定义对象间的一对多依赖,当一个对象改变状态时,其所有依赖者都会收到通知。

    • 关键点:事件触发机制。
    • 适用场景:需要广播通知时。
    • 示例:事件监听机制。
  4. 责任链模式 (Chain of Responsibility)
    将请求沿着处理链传递,直到某个对象处理它。

    • 关键点:请求和处理解耦。
    • 适用场景:动态决定请求处理者。
    • 示例:日志处理器链。
  5. 命令模式 (Command)
    将请求封装成对象,便于存储、传递和撤销。

    • 关键点:封装请求。
    • 适用场景:请求需要排队或撤销。
    • 示例:任务队列。
  6. 迭代器模式 (Iterator)
    提供一种访问集合元素的方法,而不暴露集合的内部结构。

    • 关键点:遍历集合而不暴露实现。
    • 适用场景:需要统一遍历接口。
    • 示例:Java 中的 Iterator
  7. 中介者模式 (Mediator)
    通过中介者对象封装对象之间的交互。

    • 关键点:简化对象之间通信。
    • 适用场景:多个对象存在复杂交互。
    • 示例:MVC 模式中的 Controller。
  8. 备忘录模式 (Memento)
    保存对象的状态,以便在需要时恢复。

    • 关键点:状态快照。
    • 适用场景:需要撤销操作时。
    • 示例:文本编辑器的撤销功能。
  9. 状态模式 (State)
    允许对象在内部状态改变时改变其行为。

    • 关键点:状态驱动行为。
    • 适用场景:行为依赖于状态。
    • 示例:线程状态转换。
  10. 访问者模式 (Visitor)
    为对象结构添加新功能,而不改变结构本身。

    • 关键点:分离数据结构和行为。
    • 适用场景:需要对结构不同的元素添加新功能。
    • 示例:文件系统扫描器。
  11. 解释器模式 (Interpreter)
    定义一个语言的语法表示,并提供解释器来处理语法。

    • 关键点:解析和执行语言。
    • 适用场景:实现简单的脚本或规则引擎。
    • 示例:正则表达式引擎。

小结

  • 创建型模式:关注对象创建。
  • 结构型模式:关注对象组合与结构。
  • 行为型模式:关注对象间的交互与职责。

掌握设计模式可以提高代码复用性、扩展性和可维护性,是提升编程能力的重要途径。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com