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

笔记二:结构型设计模式

引言

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

结构型模式的定义

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

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

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

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

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

相关推荐
Zane19942 天前
一个 new 就能创建对象,为什么还要拆出单例、工厂、建造者、原型四种模式?
设计模式
怕浪猫3 天前
一行命令复刻爆款视频,我把 Hypit 从安装跑到了出片
人工智能·设计模式·程序员
Zane19943 天前
函数式编程里的函数,其实不是你天天写的那个函数——三大编程范式的边界在哪
设计模式
Zane19944 天前
策略模式现在该不该上?一次讲清楚过度设计和设计不足怎么找平衡
设计模式
她说..4 天前
常见设计模式-模板方法模式
java·spring·设计模式·springboot
xiaofeiyang1504 天前
第六章 · 桥接 — 三支毛笔,画出九种颜色
设计模式
Shadow(⊙o⊙)5 天前
OTOL设计模式 One Thread One Loop
服务器·网络·设计模式
sarasuki6 天前
如何让LLM 能在半夜偷偷打开网易云呢?
人工智能·设计模式·agent
小王师傅666 天前
【设计模式】装饰模式(四):框架源码实战——从 Java I/O 到 Spring 到 MyBatis
java·设计模式
执明wa6 天前
Android RecyclerView 多类型, 多种 Item
android·xml·开发语言·设计模式·android studio