通常的装饰模式是透明装饰模式。本文写一个半透明装饰模式。

/*** 一个通用的抽象批条模型。* * @author zhangfly**/
public interface Document {void display();
}
/*** 请假条。* 后续需要为其增加审批功能。* * @author zhangfly**/
public class LeaveRequest implements Document{@Overridepublic void display() {System.out.println("LeaveRequest display");}
}
/*** 采购单。* 后续需要为其增加审批功能。* @author zhangfly**/
public class PurchaseRequest implements Document {@Overridepublic void display() {System.out.println("PurchaseReques display");}
}
/*** 抽象装饰类。* * @author zhangfly**/
public class Decorator implements Document {private Document document;public Decorator(Document document) {this.document = document;}@Overridepublic void display() {document.display();}
}

public class Approver extends Decorator {public Approver(Document document) {super(document);System.out.println("增加审批功能");}public void approve() {System.out.println("审批");}
}
public class Test {public Test() {Document document1 = new PurchaseRequest();Approver approver1 = new Approver(document1);approver1.display();Document document2 = new LeaveRequest();Approver approver2 = new Approver(document2);approver2.display();}public static void main(String[] args) {new Test();}
}

Java设计模式:半透明装饰模式相关推荐

  1. java设计模式之装饰模式_Java中的装饰器设计模式

    java设计模式之装饰模式 装饰器设计模式允许在运行时将附加职责或行为动态附加到对象. 它是一种结构模式,利用聚合来组合这些行为. 在本教程中,我们将学习实现装饰器模式. UML图: 让我们从装饰器模 ...

  2. Java设计模式之装饰模式(透明装饰模式,半透明装饰模式)

    一.概述 动态地给一个对象增加一些额外的职责(方法).就扩展功能而言,装饰者模式提供了一种比使用子类更加灵活的替代方案. 装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职 ...

  3. JAVA设计模式之装饰模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替 ...

  4. 【Java设计模式】装饰模式

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 装饰模式就是为一个对象增添新的功能,在对象的基础上修饰.本文实现的功能是,对象a有方法show输出&q ...

  5. 装饰模式——初学JAVA设计模式

    文章目录 一.基本概念 模式角色 二.简单实例 实例一.变形金刚 类图 代码实现 结果截图 实例二.喜羊羊与灰太狼 类图 方式一:半透明模式 代码实现 结果截图 方式二:半透明模式+透明模式 代码实现 ...

  6. Java设计模式(7)装饰模式(Decorator模式)

    Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这 ...

  7. 【Java设计模式】简单学装饰模式——来杯咖啡,先糖后奶

    目录 说明 目标 实现方式 应用场景 其他链接 说明 结构型模式之一,其他还有适配器模式.桥接模式.组合模式.外观模式.享元模式.代理模式 装饰者模式(Decorator Pattern)的精髓在于动 ...

  8. Java私塾:研磨设计模式 之 装饰模式(Decorator)3

    22.3  模式讲解 22.3.1  认识装饰模式 (1)模式功能 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象增加功能,相当于是改变了对象的外观.当装饰过后,从外部使用系统的角度看 ...

  9. java设计模式学习笔记之装饰模式

    java设计模式学习笔记之装饰模式 尊重原创,转载请注明出处,原文地址: http://blog.csdn.net/qq137722697 这是一个使用策略模式和构建模式设计的网络请求框架,去看看吧& ...

最新文章

  1. 多线程初探:三种方式创建多线程详细示例
  2. golang中的strings.SplitAfterN
  3. SpringBoot @Valid各种注解使用说明
  4. osqa java_从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA(召唤前端)
  5. Price merge是通过org change的callback来trigger的
  6. python 爬虫爬取小说信息
  7. ANSYS——初学路径之路径的定义、作用以及ansys路径模块GUI的操作解释
  8. BZOJ1251 序列终结者
  9. PowerDesigner逆向工程,从数据库导出PDM(包括采坑记录)
  10. pep3评估报告解读_首次公布!PISA全球胜任能力评估报告出炉,有何新启示?
  11. 接口测试很难吗?教你用Postman实用代码实现时间戳加密
  12. win10关闭计算机休眠,小编教您win10怎么关闭休眠 win10关闭系统休眠方法
  13. 无线路由器密码破解最新教程完整版
  14. 【C语言】输出华氏-摄氏温度转换表
  15. 文件夹恶意软件WORM_AUTORUN.FIU处理
  16. 服务器数据抓包(原来微信图片真的可以抓包看的)
  17. Android Studio代码边界线的设置
  18. 27岁,30岁,37岁...... 你是否已经把世界拱手让人?
  19. 微信动态二维码管理引流源码/微信活码/自动换群/微信朋友圈加群二维码
  20. 【TypeScript】TS与Vue

热门文章

  1. DIY孔明锁(6根)自制鲁班锁
  2. Gradle-dependencies介绍
  3. [Deep-Learning-with-Python]GAN图片生成
  4. Hyperion planning LCM迁移(官方文档)
  5. javascript实现一个自制网页音乐播放器
  6. Thinkphp底层源码分析第一章
  7. java限定符_正则表达式之限定符
  8. 更改车载android系统launcher界面
  9. 青春的味道-宁波山地马拉松赛记
  10. Hypermesh+Nastran+Abaqus+LS_Dyna+Femfat电池包仿真视频教程