zoukankan      html  css  js  c++  java
  • 设计模式-装饰模式

    装饰模式 参考

      装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。

    装饰模式的结构

      装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。

    装饰模式的角色有:

    • 抽象构件(Component)角色: 给出一个抽象接口,以规范准备接收附加责任的对象。
    • 具体构件(ConcreteComponent)角色: 定义一个将要接收附加责任的类。
    • 装饰(Decorator)角色: 持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。
    • 具体装饰(ConcreteDecorator)角色: 负责给构件对象“贴上”附加的责任。

    装饰模式在Java语言中的最著名的应用莫过于Java I/O标准库的设计了。

      由于Java I/O库需要很多性能的各种组合,如果这些性能都是用继承的方法实现的,那么每一种组合都需要一个类,这样就会造成大量性能重复的类出现。而如果采用装饰模式,那么类的数目就会大大减少,性能的重复也可以减至最少。因此装饰模式是Java I/O库的基本模式。

  • 相关阅读:
    PHP计算近1年的所有月份
    mysql的索引和锁
    深度解析 https 协议
    linux 常用命令大全
    为什么Python3.6字典变得有序了?
    oddo
    RESTful接口开发规范
    python中的 __inti__ 和 __new__ 方法的区别
    十大经典算法 Python实现
    MongoDB journal 与 oplog,究竟谁先写入?--转载
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/11067586.html
Copyright © 2011-2022 走看看