设计模式——装饰者(decorator)模式demo——成绩汇报的装饰者模式实现 -ag凯发k8国际
ag凯发k8国际
收集整理的这篇文章主要介绍了
设计模式——装饰者(decorator)模式demo——成绩汇报的装饰者模式实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
考试成绩score,如果直接告诉(report)成绩(例如65分),家长会生气;加一个装饰器,先告诉家长,这次考试比上次增加了几分,家长会比较高兴;加一个装饰器,告诉家长,这次考试最高成绩比我只高一点,家长也会比较高兴;加一装饰器,告诉家长,这次考试班级排名前列,家长也会比较高兴。
package io.shentuzhigang.demo.design.score;import org.junit.jupiter.api.test;/*** @author shentuzhigang* @version 1.0.0* @date 2020-11-19 18:40*/ public class scoretest {@testpublic void t(){person person = new person();decorator decorator = new decorator_zero(new decorator_first(new decorator_two(person)));decorator.report();} } interface reportor{void report(); } abstract class decorator implements reportor{private reportor reportor;public decorator(reportor reportor){this.reportor = reportor;}@overridepublic void report() {reportor.report();} }class decorator_zero extends decorator {public decorator_zero(reportor reportor) {super(reportor);}@overridepublic void report() {system.out.println("这次考试比上次增加了几分");super.report();} }class decorator_first extends decorator {public decorator_first(reportor reportor) {super(reportor);}@overridepublic void report() {system.out.println("这次考试最高成绩比我只高一点");super.report();} }class decorator_two extends decorator {public decorator_two(reportor reportor) {super(reportor);}@overridepublic void report() {system.out.println("这次考试班级排名前列");super.report();} }class person implements reportor {@overridepublic void report() {system.out.println("65");} }设计模式之装饰者模式(实例 demo)
java设计模式初探之装饰者模式
总结
以上是ag凯发k8国际为你收集整理的设计模式——装饰者(decorator)模式demo——成绩汇报的装饰者模式实现的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 设计模式——装饰者(decorator)
- 下一篇: