zoukankan      html  css  js  c++  java
  • 包装模式(适配器模式和装饰者模式)

     

    先看一个图

     

     

     

    带个 Wrapper的一般就装饰器模式 或者适配器模式

     

     

    mybatis中的Cache

     

     

     

    通过对 Cache的实现进行了进一步包装,就可以实现多种多样的功能,如LRU, FIFO等缓存淘汰策略

     

     

    点击 SynchronizedCache 可以看到,这个是给 方法加上了 Synchronized , 不同的包装类,实现了对应特定业务的功能

     

     

    关于适配器模式:

     

    优点:

    1. 能提高类的透明性和复用,现有的类复用,但不需要改变
    2. 目标类和适配器类解耦,提高程序的扩展性
    3. 符合开闭原则

    缺点:

    1. 适配器编写需要全面考虑,可能增加系统的复杂性
    2. 增加系统代码可读的难度

    适配器的种类:

    1. 对象适配器
    2. 类适配器

    适配器模式可以 结合 门面模式对比看看:

    都是对现有的类进行封装, 门面模式是定义一个新的接口

    而适配器模式则是复用 接口(旧接口,旧实现)的方法

    从粒度上看:

    外观模式是用来适配整个子系统,而适配器模式的粒度更小

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    这不是线性表
    定义线性表
    这不是线性表
    API函数的参数
    定义线性表
    [原创 js] 自定义页面功能
    YUI3 学习笔记(1) 
    YUI3学习笔记 ( 2 )
    含有变量的正则表达式使用方法
    YUI3学习笔记 ( 3 )
  • 原文地址:https://www.cnblogs.com/lyr-2000/p/12561276.html
Copyright © 2011-2022 走看看