精华内容
下载资源
问答
  • 结构性模式

    2019-10-12 17:15:02
    结构性模式 1、用于类或对象的组合,形成更为强大的结构 2、代理模式、装饰器模式、适配器模式、桥接模式、享元模式、外观模式、组合模式

    结构性模式
    1、用于类或对象的组合,形成更为强大的结构
    2、代理模式、装饰器模式、适配器模式、桥接模式、享元模式、外观模式、组合模式

    展开全文
  • 设计模式之结构性模式

    千次阅读 2018-09-25 19:28:01
    结构模式 1 定义 结构模式描述如何将类和对象组合起来,形成更大的结构,就像搭积木,可以通过简单积木的组合形成复功能更为强大的积木。 2 类型 类结构模式 : 由多个类可以组成一个更大的系统,在类结构模式中...

    结构型模式

    1 定义

    结构型模式描述如何将类和对象组合起来,形成更大的结构,就像搭积木,可以通过简单积木的组合形成复功能更为强大的积木。

    2 类型

    • 类结构模式 : 由多个类可以组成一个更大的系统,在类结构模式中只存在继承关系和实现关系
    • 对象结构模式 : 通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。根据合成复用原则,在系统中尽量使用关联关系来替代继承关系,因此大部分结构模式都是对象结构模式

    在这里插入图片描述

    适配器模式

    1 模式动机

    如果现有的类可以满足客户类的功能需求,但它所提供的接口方法不一定是客户类所期望的,这种情况下我们需要适配器模式来将现有的接口转化为客户类所期望的接口

    2 模式结构

    • Target : 目标抽象类
    • Adapter : 适配器类
    • Adaptee : 适配者类
    • Client : 客户端类

    类适配器
    在这里插入图片描述
    对象适配器
    在这里插入图片描述

    3 优点

    • 将适配器类和目标类解耦,通过引入适配器类来重用现有的适配者类,而无须修改源代码
    • 增加类的透明性和复用性
    • 灵活性和扩展性都非常好,通过定义配置文件可以很方便的更换适配器

    桥接模式

    1 模式动机

    设想如果要绘制矩形、圆形、椭圆形、正方形,我们至少需要四个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色。此时至少有以下两种实现方案

    • 第一种设计方案是为每一种形状都提供一套各种颜色的实现版本
    • 第二种设计方案是根据实际需要对形状和颜色进行组合
      在这里插入图片描述

    2 模式定义

    将抽象部分与实现部分分离,使他们都可以独立变化,它是一种对象结构型模式。桥接模式中的脱藕是指在一个软件系统的抽象化和实现化之间使用关联关系而不是继承关系,从而使两者可以相对独立的变化

    3 模式结构

    • Abstraction : 抽象类
    • RefinedAbstraction : 扩充抽象类
    • Implementer : 实现类接口
    • ConcreteImplementer : 具体实现类
      在这里插入图片描述

    4 实例解析

    • 模拟毛笔

    在这里插入图片描述

    • 跨平台视屏播放器
      如果需要开发一个视频播放器,可以在不同操作系统平台上()Windows,Linus,Unix)播放多种视频格式的视频文件(MPEG、RMVB、AVI、WMV)
      在这里插入图片描述

    5 优点

    • 分离抽象接口及其实现部分
    • 桥接模式是比多继承方案更好的解决办法
    • 桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统
    • 实现细节对用户透明,可以对用户隐藏实现细节

    6 缺点

    • 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程
    • 桥接模式要求正确识别出系统两个独立变化的维度,因此其使用范围具有一定的局限性

    组合模式

    1 模式动机

    组合模式描述了如何将容器对象和叶子对象进行递归组合,使得用户在使用他们得时候无须区分,可以一致得对待容器对象和叶子对象。

    2 模式结构

    • Component : 抽象构件
    • Leaf : 叶子构件
    • Composite : 容器构件
    • Client : 客户端
      在这里插入图片描述

    3 模式分析

    • 组合模式的关键是定义了一个抽象构建类,它既可以代表叶子,又可以代表容器,而客户端针对该抽象构建类进行编程,无须知道他代表的是叶子还是容器,可以对其进行统一处理
    • 同时容器对象和抽象构建类还建立了一个聚合关联关系,在容器对象中既可以包括叶子也可以包括容器,以此实现递归组合,形成树形结构。

    4 模式实例

    • 水果盘
      在这里插入图片描述
    • 文件浏览

    在这里插入图片描述

    5 优点

    • 可以清晰的定义分层次的复杂对象
    • 客户端调用简单,客户端可以一致的使用组合结构或其中的单个对象

    6 模式应用

    • XML文档解析
    • 操作系统的文档系统
    • JDK中的AWT/Swing是组合模式在JAVA类库中的实际应用

    在这里插入图片描述

    装饰模式

    1 模式动机

    一般有两种方式实现给一个类或者对象增加行为

    • 继承机制:使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类使得子类再拥有自身方法的同时还拥有父类的方法。但是这种方式是静态的,用户无法控制增加行为的方法和时机
    • 关联机制:即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象以便扩充自己的行为,我们称这个嵌入的对象为装饰器

    装饰模式以对客户透明的方式动态的给一个对象附加上了更多的责任,换言之,用户并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不需要创造更多子类的前提下,将对象的功能加以扩展。

    2 模式结构

    • Component : 抽象构建
    • ConcreteComponent : 具体构建
    • Decorator : 抽象装饰类
    • ConcreteDecorator : 具体装饰类

    在这里插入图片描述

    3 模式实例

    • 变形金刚
      在这里插入图片描述
    • 多重加密系统
      在这里插入图片描述

    4 优点

    • 装饰模式和继承机制的目的都是要扩展对象的功能,但是装饰模式可以提供比继承关系更多的灵活性
    • 通过动态的方式扩展一个对象的功能,比如通过配置文件来选择不同的装饰器,从而实现不同的行为
    • 通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的排列组合。可以使用多个具体装饰类来装饰同一个对象,得到更为强大的对象
    • 具体构建类和具体装饰类可以独立变化,用户可以增加新的具体构建类和具体装饰类,使用时在对其进行组合,原有代码无须改动,符合开闭原则

    5 应用

    • (1)
      在这里插入图片描述
    • (2)
      在这里插入图片描述
      在这里插入图片描述

    外观模式

    1 模式动机

    引入外观模式后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低系统的耦合度

    在这里插入图片描述

    2 模式结构

    • Facade : 外观角色
    • SubSystem : 子系统角色

    在这里插入图片描述

    3 模式实例

    • 电源总开关
      在这里插入图片描述
    • 文件加密
      在这里插入图片描述
    展开全文
  • 以下设计模式中,哪一项不属于结构性模式? A 适配器模式 B 代理模式 C 命令模式 D 装饰模式 正确答案 : C知识点创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型...

    美团2016校园招聘 研发工程师(一)
    以下设计模式中,哪一项不属于结构性模式?
    A 适配器模式
    B 代理模式
    C 命令模式
    D 装饰模式

    正确答案 : C


    知识点

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    这里写图片描述

    展开全文
  • 什么是结构性模式

    2009-11-27 15:07:00
    结构性模式描述类和对象怎知结合在一起成为较大的结构。结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同,结构性模式可以分为类结构模式和实例结构模式两种。 类结构模式使用继承...

          结构性模式描述类和对象怎知结合在一起成为较大的结构。结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同,结构性模式可以分为类结构模式和实例结构模式两种。

          类结构模式使用继承(inheritance)来把类、接口等组合在一起,形成更大的结构。当一个类从父类继承,并实现某接口时,这个新的类就把父类的结构和接口的结构结合起来。类结构模式是静态的。一个类结构模式的典型的例子,就是类形式的变压器模式。

          实便结构模式描述各种不同类型的把对象组合在一起,实现新的功能的方法。实例结构模式是动态的。一个典型的实例结构模式。

     

     

    展开全文
  • 不懂使用为学过,说出用途,绘制...组合模式通过一种巧妙的设计方案来使得用户可以一致的处理整个树形结构或者树形结构的一部分,也可以一致的处理树形结构中的叶子节点。 什么是组合模式 Composite Pattern ...
  • 不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。 ...将抽象部分与其实现部分分离,使他们都可以独立的变化,它是一种对象结构模式,又被称为柄体模式或者接口模式 桥...
  • 现实中有些东西想要但是在别的国家想买但是过去买的成本太大,所以有中介这种行业应运而生,相对于自己去买的话比较便宜,也节省时间,在软件设计中,也存在着这么一种模式,客户端不能直接访问某个对象,此时可以...
  • 不懂使用为学过,说出用途,绘制结构为了解,不会灵活使用基本等于没学。 前言 我们大多数时候买的新房都是毛坯房,想要入住的话无疑需要进行一次装修自己才能高高兴兴的入住,虽然装修了,但是并没有改变房子的...
  • 意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...(2)客户程序与抽象类的实现部分之间存在很大的依赖,引入外观模式将子系统与客户程序
  • 什么是结构性模式 结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同, 结构性模式可以分为类结构模式和实例结构模式两种。 类结构...
  • Composite模式解决的是树形结构等的组合结构~
  • 外观模式又称为门面模式,它是一种对象结构模式。 外观模式的优点 (1)、对客户端屏蔽了子系统的组件,减少了客户端所需处理的对象数目并使得子系统使用起来更加容易。通过引入外观模式,客户端代码将变得...
  • 系统只使用少量的对象,而这些对象都很相似,状态变化可以很小,可以实现对象的多次复用,由于享元模式要求能够共享的对象必须是细粒度的对象,因此它又被称之为轻量级模式,是一种对象结构模式 享元模式的优点...
  •  适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类的适配器模式 先看类图...
  • Decorator提供一种给类添加职责的方法,不是通过继承实现的,而是通过组合(Decorator类中有一个指向Compoent对象的指针),Decorator模式这种典型结构图的优点在于可以为不同的ConcreteComponent提供新的职责。
  • 什么是结构性模式结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同, 结构性模式可以分为类结构模式和实例结构模式两种。 类结构...
  • 一、外观模式的特点外观模式的作用是将底层的所有子系统统一成一个接口提供给客户端调用,客户端不必知道底层子系统联系只需要知道调用接口就能够实现功能。列如做投资的时候不必直接去与股票打交道,通过直接够买...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,481
精华内容 10,192
关键字:

结构性模式