笔记二:结构型设计模式
引言
结构型设计模式关注于如何组合类或对象来形成更大的结构。这些模式提供了多种方式来改变类的接口或组合类来获得新的功能,从而帮助我们解决常见的软件设计问题。
结构型模式的定义
结构型设计模式是一类设计模式,用于简化接口、组合对象、改变类的接口、封装对象的创建过程等。这些模式帮助开发者设计出更易于理解、维护和扩展的系统。
为什么需要结构型模式
- 简化接口:通过提供一个简洁的接口来访问一组接口或子系统,使得客户端代码更易于编写和维护。
- 组合对象:允许将对象组合成树形结构来表示"部分-整体"的层次结构,以便一致地处理单个对象和组合对象。
- 改变类的接口:使现有类的接口与所需接口相匹配,从而可以重用现有类而不需修改它们。
- 封装对象的创建过程:允许在不改变现有对象的情况下添加新的功能,或控制对一个对象的访问。
小结
-
结构型模式的共性:
- 这些模式都关注于如何组织类和对象以形成更大的结构。
- 它们提供了一种方式来改变类的接口或组合类来获得新的功能。
- 结构型模式通常有助于降低系统的耦合度,使得程序更易于维护和扩展。
-
何时使用这些模式:
- 当你需要简化接口以提供一个更高级别的视图时。
- 当你需要组合对象以形成更大的结构时。
- 当你需要改变现有类的接口以满足新的需求时。
- 当你需要在不改变现有对象的情况下添加新的功能时。
- 当你需要控制对一个对象的访问时。
结构型模式的共性
- 接口的简化:这些模式通常提供一个简化的接口,使得客户端代码可以更容易地与子系统交互。
- 对象的组合:这些模式允许将对象组合起来形成更大的结构,从而可以以一致的方式处理单个对象和复合对象。
- 接口的调整:通过适配器、桥接等方式调整现有接口以适应新的环境。
- 功能的扩展:通过装饰器等模式在不改变现有对象的情况下添加新的功能。
- 访问的控制:通过代理模式控制对对象的访问。
何时使用这些模式
- 适配器模式:当你需要将一个类的接口转换成客户期望的另一个接口时。
- 桥接模式:当你需要将抽象与其实现分离,以便两者可以独立变化时。
- 组合模式:当你需要将对象组合成树形结构来表示"部分-整体"的层次结构时。
- 装饰器模式:当你需要动态地给对象添加额外的责任时。
- 外观模式:当你需要为一个子系统提供一个简洁的接口时。
- 享元模式:当你需要减少大量相似对象的内存消耗时。
- 代理模式:当你需要控制对一个对象的访问,或者在访问前后执行某些操作时。
通过使用结构型设计模式,你可以有效地管理和组织类和对象,从而构建出更灵活、更易于维护的系统。这些模式有助于降低系统的复杂度,并提高代码的可读性和可维护性。