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

笔记二:结构型设计模式

引言

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

结构型模式的定义

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

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

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

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

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

相关推荐
sg_knight2 小时前
设计模式实战:模板方法模式(Template Method)
python·设计模式·模板方法模式
爱学习的程序媛4 小时前
【Web前端】JavaScript设计模式全解析
前端·javascript·设计模式·web
Yu_Lijing11 小时前
基于C++的《Head First设计模式》笔记——备忘录模式
c++·笔记·设计模式·备忘录模式
无籽西瓜a13 小时前
【西瓜带你学设计模式 | 第二期-观察者模式】观察者模式——推模型与拉模型实现、优缺点与适用场景
java·后端·观察者模式·设计模式
我真会写代码16 小时前
Java程序员常用设计模式详解(实战版)
java·开发语言·设计模式
无籽西瓜a17 小时前
【西瓜带你学设计模式 | 第一期-单例模式】单例模式——定义、实现方式、优缺点与适用场景以及注意事项
java·后端·单例模式·设计模式
cliffordl1 天前
设计模式(python)
python·设计模式
云道轩1 天前
告诉 Claude Code 在项目中遵循特定的编程模式/设计模式和技术栈约束
设计模式·ai·agent·claude code
花间相见1 天前
【Java基础面试题】—— 核心知识点面试题(含答案):语法+集合+JVM+设计模式+算法
java·jvm·设计模式
朱一头zcy1 天前
设计模式入门:最简单的模板方法模式
笔记·设计模式·模板方法模式