zoukankan      html  css  js  c++  java
  • 第四、五周作业

    结构型设计模式:
    将类和对象组织再一起使用

    1,适配器模式:
    解决接口的不兼容问题,在不改变原有实现的基础上,将不兼容的接口转换为兼容的接口

    适配器可以分为两种:
    1,对象适配器:适配器类与适配这是关联关系,即拥有适配器类的成员变量
    经常使用,比如JDBC工具类

    2,类适配器:适配器类与适配者类是继承关系
    GUI的监听器使用的就是类适配器
    缺点:会让类的作用变的模糊,不建议使用

    使用适配器可以让两个没有关联的类一起使用,提高了代码的复用

    2,桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化
    将变化分离,不会因为一个变化点而影响别的变化点,降低耦合度

    桥接模式实现了抽象与实现的脱耦。他们两个互相独立,不会影响到对方。

    如果两个变化相互独立才会使用桥接模式,出现类似笛卡尔积现象的情况使用

    3,组合模式:把一组相似的对象作为一个单一的对象
    将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使用户对
    单个对象和组合的对象的使用具有一致性

    让用户处理单个对象和组合对象相同,让对象容器自己实现自身的复杂结构
    将一对多的关系转化为一对一的关系,将客户代码和复杂的对象容器结构解耦

    封装的更加彻底,用户不需要知道具体实现,只需要调用相应的方法,具体实现不需要了解

    让用户忽略组合对象和单个对象的不同,调用简单,节点自由增加
    在使用组合模式时,节点都是实现类,违背了依赖倒置原则

    4,装饰器模式:允许一个现有的对象添加新的功能,同时又不改变其结构
    可以动态的给一个对象添加额外的职责,不使用继承扩展了功能

    装饰类和被装饰类可以独立发展,不会相互耦合

    使用装饰类代替被装饰类使用,可以实现功能的动态扩展,删除,不会对被装饰类产生影响
    易于扩展,解耦合,符合开闭原则

    5,外观模式:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口
    为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

    降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口

    让客户端与系统解耦合,外观类在两者中间进行联系,减少系统的相互依赖
    提高灵活性,不符合开闭原则,不易于修改,如果我们需要增加一个接口,外观类就需要改变
    外观类与系统耦合度高

    使用外观类连接客户与系统,客户只需要调用外观类的方法来实现功能,不必在乎系统的具体实现
    但是增加了外观类与系统的耦合度,不易于扩展

    6,享元模式:运用共享技术有效的支持大量细粒度的对象
    把大量对象中的共同部分抽象出来,如果有相同的业务请求,直接返回在内存中的对象,避免重新创建
    类似于池

    使用一个容器将对象进行存储,需要某种类型的对象,直接将其取出,如果没有进行创建
    并将创建的对象放入容器中

    减少了对象的数量,降低了内存,提高了效率,但是也提高了系统的复杂度
    在系统中有大量的相似对象时使用,可能会存在线程安全问题

    7,代理模式:为其他对象提供一种代理以控制这个对象的访问
    在需要访问的对象上增加一个间接层,用户只需要访问间接层对象,间接层对象再去访问
    java的动态代理使用的就是代理模式,外界只知道能够实现功能,并需要知道是不是当前对象来实现的

    职责请求,便于扩展,再有些情况下会造成请求速度变慢,因为增加了代理对象,需要进行额外的工作

  • 相关阅读:
    【转】SVN linux命令及 windows相关操作(二)
    【转】SVN linux命令及 windows相关操作(一)
    spring框架DI(IOC)和AOP 原理及方案
    [转载]JVM性能调优--JVM参数配置
    JVM性能调优-GC内存模型及垃圾收集算法
    密码运算API(GP Internal API)
    时间API(GP Internal API)
    可信存储API(GP Internal API)
    内存管理函数(GP Internal API)
    Panic(GP Internal API)
  • 原文地址:https://www.cnblogs.com/jinpai/p/14426877.html
Copyright © 2011-2022 走看看