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

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

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

  • 相关阅读:
    HTML5然还在草案阶段
    简单的JS动态加载单体
    步步为营 C# 技术漫谈 五、事件与委托机制
    .NET简谈脚本引擎系列(一:认识脚本引擎)
    微软一站式示例代码库 6月再次更新14个新示例代码
    CLR(公共语言运行时)到底藏在哪?
    .NET简谈构件系统开发模式
    项目管理理论与实践系列文章索引
    .Net调试技巧
    Lucene.Net
  • 原文地址:https://www.cnblogs.com/jylz/p/10642296.html
Copyright © 2011-2022 走看看