1700464870
代码清单17-6 修饰的抽象类
1700464871
1700464872
public abstract class Decorator extends SchoolReport{
1700464873
1700464874
//首先我要知道是哪个成绩单
1700464875
1700464876
private SchoolReport sr;
1700464877
1700464878
//构造函数,传递成绩单过来
1700464879
1700464880
public Decorator(SchoolReport sr){
1700464881
1700464882
this.sr=sr;
1700464883
1700464884
}
1700464885
1700464886
//成绩单还是要被看到的
1700464887
1700464888
public void report(){
1700464889
1700464890
this.sr.report();
1700464891
1700464892
}
1700464893
1700464894
//看完还是要签名的
1700464895
1700464896
public void sign(String name){
1700464897
1700464898
this.sr.sign(name);
1700464899
1700464900
}
1700464901
1700464902
}
1700464903
1700464904
看到没,装饰类还是把动作的执行委托给需要装饰的对象,Decorator抽象类的目的很简单,就是要让子类来封装SchoolReport的子类,怎么封装?重写report方法!先看HighScoreDecorator实现类,如代码清单17-7所示。
1700464905
1700464906
代码清单17-7 最高成绩修饰
1700464907
1700464908
public class HighScoreDecorator extends Decorator{
1700464909
1700464910
//构造函数
1700464911
1700464912
public HighScoreDecorator(SchoolReport sr){
1700464913
1700464914
super(sr);
1700464915
1700464916
}
1700464917
1700464918
//我要汇报最高成绩
1700464919
[
上一页 ]
[ :1.70046487e+09 ]
[
下一页 ]