zoukankan      html  css  js  c++  java
  • 浅谈装饰模式、代理模式、继承

    装饰模式:在不改变接口的前提下,动态扩展对象的功能
     
    • 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。一般的,装饰者和背装饰者实现相同的接口,实现增加功能而不增加接口。
    • 装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。
     
    代理模式:在不改变接口的前提下,控制对象的访问
    装饰者模式强调功能扩展,比如A对象的B方法,运用装饰模式后,在调用B方法前后增加了新的功能,此时B方法效果与原来不同(咖啡店的例子,用户知道得到的是加了牛奶和奶泡的深焙咖啡,这杯深焙咖啡与原有的深焙咖啡不同)
    代理模式强调控制访问,在调用B方法前后加入的方法是用来控制怎么访问B方法的原始数据,而对于B实现的功能效果不做修改(咖啡店的例子,用户只知道得到的是一杯深焙咖啡,里面有没有牛奶等调料是不知道的,功能也是卖给用户一杯咖啡,这个功能是没有变化的)
    • 代理就是让别人(实现类)去干,而具体怎么干并不关心,让谁干也不关心。

    装饰:包装,包装的是对象的引用或指针;装饰对象和原对象同时对用户可见。
    继承:类的依赖性较强,集成体系臃肿。简言之,装饰扩展的是对象,而继承扩展的是类。

  • 相关阅读:
    录制caf 转 mp3
    关于百度地图iOS中 paopaoView 警告的处理方法
    iphone JB开发小记(四)theos、iosOpenDev的调试
    USB 漏洞影响超100万来自不同供应商的路由器
    进程 线程 纤程 中断
    synchronized、ReentrantLock、volatile
    TimeUnit用法
    2021年vivo互联网技术最受欢迎文章TOP25
    前端质量提升利器马可代码覆盖率平台
    zyh@163.net
  • 原文地址:https://www.cnblogs.com/jylz/p/10642296.html
Copyright © 2011-2022 走看看