public abstract class SchoolReport {
public abstract void report();
public abstract void sign(String name);
}
public class FourthGradeSchoolReport extends SchoolReport {
@Override
public void report() {
System.out.println("尊重的xxx");
System.out.println("...............");
System.out.println("語文:60 數學:68 自然:87");
}
public void sign(String name) {
System.out.println("家長簽字:"+name);
}
}
開始修飾
public abstract class Decorator extends SchoolReport {
private SchoolReport sr;
public Decorator(SchoolReport sr){
this.sr=sr;
}
@Override
public void report() {
this.sr.report();
}
@Override
public void sign(String name) {
this.sr.sign(name);
}
}
public class HighScoreDecorator extends Decorator {
public HighScoreDecorator(SchoolReport sr) {
super(sr);
}
private void reportHighScore(){
System.out.println("這次考試語文最高70,數學最高70,自然最高100");
}
@Override
public void report() {
this.reportHighScore();
super.report();
}
}
public class SortDecorator extends Decorator {
public SortDecorator(SchoolReport sr) {
super(sr);
}
private void reportSort(){
System.out.println("我排名38");
}
@Override
public void report() {
super.report();
this.reportSort();
}
}
public static void main(String[] args) {
SchoolReport sr;
sr=new FourthGradeSchoolReport();
sr=new HighScoreDecorator(sr);
sr=new SortDecorator(sr);
sr.report();
sr.sign("Dad");
//這樣老爸自然就開心的簽字了
}
我是菜鳥,我在路上。