[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2013-12-17| 标题:设计模式学习笔记:装饰模式|分类:编程 / 设计模式 / java |标签:设计模式·java·装饰模式
设计模式学习笔记:装饰模式
最近在看《设计模式之禅》这本书,收获良多,作者不愧是工作多年的大牛,将各种设计模式讲解的非常透彻。这里备份下书中的【 装饰模式 】代码:
github:
【 https://github.com/cstriker1407/design_pattern 】
代码:
abstractclassSchoolReport{publicabstractvoidreport();publicabstractvoidsign();}classFinalTestReportextendsSchoolReport{@Overridepublicvoidreport(){System.out.println("final test report");}@Overridepublicvoidsign(){System.out.println("sign here");}}abstractclassDecoratorSchoolReportextendsSchoolReport{privateSchoolReportreport;publicDecoratorSchoolReport(SchoolReportreport){super();this.report=report;}@Overridepublicvoidreport(){report.report();}@Overridepublicvoidsign(){report.sign();}}classHighScoreDecoratorextendsDecoratorSchoolReport{publicHighScoreDecorator(SchoolReportreport){super(report);}@Overridepublicvoidreport(){System.out.println("show high score before show Final Test result");super.report();}}classSortDecoratorextendsDecoratorSchoolReport{publicSortDecorator(SchoolReportreport){super(report);}@Overridepublicvoidreport(){super.report();System.out.println("show sort number after show Final Test result");}}测试代码:
publicclassDecoratorTest{publicstaticvoidtest(){SchoolReportsr=newFinalTestReport();sr=newHighScoreDecorator(sr);sr=newSortDecorator(sr);sr.report();}}