编程-结构型设计模式-小结

笔记二:结构型设计模式

引言

结构型设计模式关注于如何组合类或对象来形成更大的结构。这些模式提供了多种方式来改变类的接口或组合类来获得新的功能,从而帮助我们解决常见的软件设计问题。

结构型模式的定义

结构型设计模式是一类设计模式,用于简化接口、组合对象、改变类的接口、封装对象的创建过程等。这些模式帮助开发者设计出更易于理解、维护和扩展的系统。

为什么需要结构型模式
  • 简化接口:通过提供一个简洁的接口来访问一组接口或子系统,使得客户端代码更易于编写和维护。
  • 组合对象:允许将对象组合成树形结构来表示"部分-整体"的层次结构,以便一致地处理单个对象和组合对象。
  • 改变类的接口:使现有类的接口与所需接口相匹配,从而可以重用现有类而不需修改它们。
  • 封装对象的创建过程:允许在不改变现有对象的情况下添加新的功能,或控制对一个对象的访问。
小结
  • 结构型模式的共性

    • 这些模式都关注于如何组织类和对象以形成更大的结构。
    • 它们提供了一种方式来改变类的接口或组合类来获得新的功能。
    • 结构型模式通常有助于降低系统的耦合度,使得程序更易于维护和扩展。
  • 何时使用这些模式

    • 当你需要简化接口以提供一个更高级别的视图时。
    • 当你需要组合对象以形成更大的结构时。
    • 当你需要改变现有类的接口以满足新的需求时。
    • 当你需要在不改变现有对象的情况下添加新的功能时。
    • 当你需要控制对一个对象的访问时。
结构型模式的共性
  • 接口的简化:这些模式通常提供一个简化的接口,使得客户端代码可以更容易地与子系统交互。
  • 对象的组合:这些模式允许将对象组合起来形成更大的结构,从而可以以一致的方式处理单个对象和复合对象。
  • 接口的调整:通过适配器、桥接等方式调整现有接口以适应新的环境。
  • 功能的扩展:通过装饰器等模式在不改变现有对象的情况下添加新的功能。
  • 访问的控制:通过代理模式控制对对象的访问。
何时使用这些模式
  • 适配器模式:当你需要将一个类的接口转换成客户期望的另一个接口时。
  • 桥接模式:当你需要将抽象与其实现分离,以便两者可以独立变化时。
  • 组合模式:当你需要将对象组合成树形结构来表示"部分-整体"的层次结构时。
  • 装饰器模式:当你需要动态地给对象添加额外的责任时。
  • 外观模式:当你需要为一个子系统提供一个简洁的接口时。
  • 享元模式:当你需要减少大量相似对象的内存消耗时。
  • 代理模式:当你需要控制对一个对象的访问,或者在访问前后执行某些操作时。

通过使用结构型设计模式,你可以有效地管理和组织类和对象,从而构建出更灵活、更易于维护的系统。这些模式有助于降低系统的复杂度,并提高代码的可读性和可维护性。

相关推荐
Meteors.2 小时前
23种设计模式——访问者模式 (Visitor Pattern)
设计模式·访问者模式
Vallelonga2 小时前
Rust 设计模式 Marker Trait + Blanket Implementation
开发语言·设计模式·rust
en-route3 小时前
设计模式的底层原理——解耦
设计模式
杯莫停丶3 小时前
设计模式之:工厂方法模式
设计模式·工厂方法模式
Deschen3 小时前
设计模式-抽象工厂模式
java·设计模式·抽象工厂模式
粘豆煮包4 小时前
系统设计 System Design -4-2-系统设计问题-设计类似 TinyURL 的 URL 缩短服务 (改进版)
设计模式·架构
top_designer5 小时前
告别“静态”VI手册:InDesign与AE打造可交互的动态品牌规范
设计模式·pdf·交互·vi·工作流·after effects·indesign
非凡的世界7 小时前
深入理解 PHP 框架里的设计模式
开发语言·设计模式·php
一叶飘零_sweeeet7 小时前
深入 Spring 内核:解密 15 种设计模式的实战应用与底层实现
java·spring·设计模式
Mr_WangAndy7 小时前
C++设计模式_行为型模式_状态模式State
c++·设计模式·状态模式