• 设计模式-结构型模式


    适配器模式(Adapter Pattern)

      1. why

        使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

      2. when

        1、适配类的接口以匹配客户端期待的接口

        2、某个类实现了我们所需要的服务,但它的方法名称却与客户端的期望不符

      3. how

        1、类的适配器:当客户端通过接口表达其需求时,实现该接口,并继承现有的类。即将客户端的调用,转换为对现有类的调用。

        2、对象的适配器:继承客户端的类,并组合现有类的实例。即将客户端的调用,转换为对现有类的实例的调用。

        3、接口的适配器:用抽象类实现客户端需要的接口。接着让适配器类继承该抽象类,并持有现有类的实例。

    桥接模式(Bridge Pattern)

      1. why

        把抽象化与实现化解耦,使得二者可以独立变化。

      2. when

        实现系统可能有多个角度分类,每一种角度都可能变化。

      3. how

        将抽象类的一些操作,抽取到一个接口中,并在抽象类中持有这个接口的对象。

    过滤器模式(Filter、Criteria Pattern)

      1. why

      2. when

      3. how

    组合模式(Composite Pattern)

      1. why

      2. when

      3. how

    装饰器模式(Decorator Pattern)

      1. why

        一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。    

      2. when

        在不增加子类的情况下,动态的增加功能。    

      3. how

        新增一个装饰类,并实现被装饰的类的接口(实现了同一个接口,可以替换。里氏代换原则),装饰类持有需要增加功能类(被装饰的类)的实例。

    外观模式(Facade Pattern)

      1. why

      2. when

      3. how

    享元模式(Flyweight Pattern)

      1. why

      2. when

      3. how

    代理模式(Proxy Pattern)

      1. when

      在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

      2. how

      代理类实现被代理的类的接口(实现了同一个接口,可以替换。里氏代换原则),在代理类中组合被代理的类。

  • 相关阅读:
    【Python之路Day1】基础篇
    C语言转义字符表和ASCII码表
    strcpy函数学习
    Linux C遇到的常见错误
    静态内存
    指针
    #define学习
    枚举
    搭建Linux C语言开发环境
    centos下php环境安装redis
  • 原文地址:https://www.cnblogs.com/zhouj-happy/p/6346582.html
Copyright © 2020-2023  润新知