zoukankan      html  css  js  c++  java
  • 设计模式之装饰模式和代理模式区别与联系

    一.你在一个地方写装饰,大家就知道这是在增加功能,你写代理,大家就知道是在限制
         1.最常见的代理就是权限判断了,权限就肯定是限制了
         2.装饰模式是指增强被包装对象的功能
           代理模式是修改被代理对象的行为
         3.例子:
           1.装饰模式:对被装饰的对象增加额外的职责,满足里氏代换原则(子类可以代替父类)
             如:杯子生产线,杯子必须可以装水,在生产线上可以给杯子涂颜色,加杯盖,
    但要保证杯子可以装水。
           2.代理模式:对被代理的对象提供访问控制。
           如:客户订购商品,可以直接从厂家订购,也可以从网上商城订购,网上商城是厂家
           的代理,从网上商城订购商品,商城可以对商品进行控制,不交钱不给商品,人不在
           不给商品,也可以赠送你额外的礼品,代金券。
         4.例子二:
           举个例子  A类是原始功能的类, B是装饰模式中对A类的扩展之后的类, C是代理模式中对A类的扩展
           对于用户调用来说。 
           使用装饰模式, 用户更关系的是B的功能(包含A的原始功能)。
           使用代理模式,用户更关心A的功能。并不关系(c的功能)。
           
         我思所得:当要扩展一个类的功能时,用装饰,如果要对原有的方法进行改进,则用代理
                  这就是真理呀,就像前面关闭数据库的那个close()功能,它也是把这个功能
         改为结束利用,将连接还给连接池。(厉害,可以的)

  • 相关阅读:
    oracle系列--第五篇 PLSQL连接本地的Oracle数据库
    oracle系列--第四篇 Oracle的卸载
    oracle系列--第三篇 Oracle的安装
    oracle系列--第二篇 oracle下载
    WinForm多语言版本实战项目演练
    从C#垃圾回收(GC)机制中挖掘性能优化方案
    jvm内存模型和垃圾回收
    servlet匹配路径时/和/*的区别(转)
    十大经典排序算法(动图演示)(转)
    排序算法
  • 原文地址:https://www.cnblogs.com/KingIceMou/p/7169658.html
Copyright © 2011-2022 走看看