打字猴:1.700464902e+09
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
1700464920 private void reportHighScore(){
1700464921
1700464922 System.out.println(“这次考试语文最高是75,数学是78,自然是80”);
1700464923
1700464924 }
1700464925
1700464926 //我要在老爸看成绩单前告诉他最高成绩,否则等他一看,就抡起扫帚揍我,我哪里还有机会说啊
1700464927
1700464928 @Override
1700464929
1700464930 public void report(){
1700464931
1700464932 this.reportHighScore();
1700464933
1700464934 super.report();
1700464935
1700464936 }
1700464937
1700464938 }
1700464939
1700464940 重写了report方法,先调用具体装饰类的装饰方法reportHighScore,然后再调用具体构件的方法,我们再来看怎么汇报学校排序情况SortDecorator代码,如代码清单17-8所示。
1700464941
1700464942 代码清单17-8 排名情况修饰
1700464943
1700464944 public class SortDecorator extends Decorator{
1700464945
1700464946 //构造函数
1700464947
1700464948 public SortDecorator(SchoolReport sr){
1700464949
1700464950 super(sr);
1700464951
[ 上一页 ]  [ :1.700464902e+09 ]  [ 下一页 ]