欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > asp.net >内容正文

asp.net

设计模式——装饰者(decorator)模式demo——成绩汇报的装饰者模式实现 -凯发k8官方网

发布时间:2024/10/5 asp.net 4 豆豆
凯发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设计模式初探之装饰者模式

总结

以上是凯发k8官方网为你收集整理的设计模式——装饰者(decorator)模式demo——成绩汇报的装饰者模式实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图