在Gof设计模式中,对设计模式的主要分类为:1)创建型、2)结构型、3)行为型。创建型设计模式抽象了对象的实例化过程;结构型设计模式涉及到如何组合类和对象以获得更大的结构;行为型设计模式描述算法和对象间职责的分配。
那么,结构型设计模式到底如何对类和对象进行组合,以获得更大的结构,组合的指引是什么呢?Adapter/Bridge/…/Proxy七种模式只是结构型设计模式的七个实例,这七个实例的核心主题是什么呢?
通过分析,我觉得可以将结构型设计模式的主题用三个词概括:1)统一、2)概括、和3)分离。
1)统一:达到一致
“统一”描述了对象组合的一个主题,通过统一性便于客户使用和扩展,在Gof七种结构型设计模式中,可以归入该主题的有Adapter(适配器)、Composite(组合)模式。
Adapter通过将一个类的接口转换为客户希望的另一个接口,即统一Adaptee类接口到Target接口,以便于客户Client使用。
Composite模式统一基元对象和组合对象,从而建立一个“部分——整体”的类层次结构。通过这个结构,客户Client可以一致的使用各种类型的组件,包括基元组件和组合组件;此外对于新的组件,无论是新的基元还是新的组合组件,都可以自然的融入到该层次结构中,从而增强了可扩展性。
2)概括:提高抽象
“概括”也描述了对象组合的一个主题,它对一些对象进行抽象和提取,然后提供给客户使用,这样既便于客户使用,也便于对底层的被概括的对象进行扩展和维护。在Gof七种结构型设计模式中,概括为该主题的有Facade(外观)模式。
Facade模式为子系统中的一组对象提供一个高层接口,这个高层接口使得这个子系统更容易使用和维护。
3)分离:降低耦合便于扩展
分离可以说是很多模式的一个主题,不仅结构型模式,创建型/行为型设计模式中也有大量的以分离为主题的模式。通过分离可以解耦关联、增加各部分的独立性等等。在Gof七种结构型设计模式中,概括为该主题的有Bridge(桥接)、Decorator(装饰器)、Flyweight(享元)、和Proxy(代理)模式。
Bridge模式分离了抽象部分和实现部分,使两部分都可以独立的变化;
Decorator模式分离了被装饰的对象和各种用于装饰的状态和职责,从而可以在运行时灵活地对组件对象进行各种装饰;
Flyweight模式分离了大量小对象中的运行环境状态信息,从而使这些小对象可以共享;
Proxy模式通过提供代理,分离了客户Client和Subject对象,从而可以在中间提供一些辅助的功能和服务;
分享到:
相关推荐
在本文中,我们将深入探讨结构型设计模式,特别是桥接模式、适配器模式、装饰者模式和组合模式,以及它们在实际场景中的应用。 1. **桥接模式**: 桥接模式将抽象部分与实现部分分离,使得它们可以独立进行变化。...
设计模式分为三大类:创建型模式、结构型模式和行为型模式。 **创建型模式**关注的是对象的创建。共有五种创建型模式: 1. **工厂方法模式**:它定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法...
今天我们要探讨的是“Java设计模式之结构型模式”。结构型模式主要关注如何组织类和对象,以达到良好的架构,提升代码的可读性和可维护性。在这个主题中,我们将深入理解并讨论这些模式的原理、应用场景及其实现。 ...
适配器模式是一种结构型设计模式,它的主要作用是使具有不同接口的类能够协同工作。当一个类的接口不满足现有系统的需要时,适配器模式允许我们将新接口封装在原有类的实例中,使得系统能正常调用。适配器模式通过将...
本篇将聚焦于结构型设计模式,并以Java语言为例,深入探讨几种常见的结构型设计模式,包括适配器模式、桥接模式、组合模式、装饰模式和外观模式。 适配器模式是结构型设计模式中非常经典的一种,其目的在于通过...
在给定的压缩包文件中,我们关注的是结构型设计模式,这些模式主要用于处理类和对象的组合与结构,以实现更灵活、可扩展的设计。下面我们将详细探讨其中涉及到的几个模式:桥接模式、适配器模式、装饰者模式和组合...
总结,适配器模式和代理模式是结构型设计模式中的重要成员,它们分别解决了接口不兼容和需要在操作前后附加逻辑的问题。在实际开发中,灵活运用这两种模式,可以有效地优化代码结构,提升系统设计的灵活性和扩展性。...
结构型设计模式是软件设计中的一种重要思想,它主要关注如何组织类和对象来形成更大的结构,同时保持代码的灵活性、可复用性和可维护性。在Java等面向对象编程语言中,结构型设计模式扮演着至关重要的角色。以下是7...
结构型设计模式关注于如何将类或对象结合在一起形成更大的结构,使得结构更加灵活。 #### 适配器模式 适配器模式使得一个类可以作为另一个类的替代品使用,即使它们之间的接口不兼容。 **实现方式**: - **继承...
组合模式(Composite Pattern)-结构型模式 (0%) <br>讲义书写模式 在实际的讲解中我会用一套模式来讲述我对设计模式的理解 1.给出当前章节模式的名称 2.讲述一个小故事,提出问题 3.回答这个...
设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中,作者罗伟富通过 Python 实现了 23 种经典设计模式,包括 Singleton 模式、Factory 模式、Observer 模式等。这些模式可以帮助开发者更好地...
通过学习这个项目,可以理解如何将设计模式与体系结构有效地结合,以及如何从头到尾完成一个完整的软件开发流程。 总之,“服装管理系统”项目是一个综合运用设计模式和体系结构的实例,对于学习和实践软件开发的...
设计模式通常分为三类:创建型、结构型和行为型。创建型模式关注对象的创建过程,如单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。结构型模式处理对象的组合和相互关系,如适配器模式、装饰器模式、...
标题中的“C#面向对象设计模式纵横谈(9):Composite组合模式(结构型模式)”明确了文章的主题聚焦于C#语言环境下的设计模式探讨,具体到第9篇讨论的是“Composite组合模式”。这一模式属于结构型模式的一种,旨在解决...
常见的设计模式分为三大类:创建型模式(如单例模式、工厂方法模式、抽象工厂模式等)、结构型模式(如适配器模式、装饰器模式、代理模式等)和行为型模式(如观察者模式、策略模式、责任链模式等)。这些模式为我们...
学习并掌握这些数据结构和设计模式,开发者可以更好地理解和解决复杂问题,写出优雅、高效的代码。数据结构的选择直接影响算法的效率,而设计模式则能帮助我们构建模块化、可维护的系统,避免重复发明轮子。因此,...
在本实验中,我们将探讨三种主要的设计模式类别:创建型模式、结构型模式和行为型模式。 创建型模式关注对象的创建过程,它们提供了一种在不指定具体类的情况下创建对象的方法,从而提高了代码的灵活性和可扩展性。...
1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类的耦合,提高了系统的可扩展性。 2. 单例模式:单例模式确保一个类只有一个实例,并提供全局访问...