你的位置:首页 > ASP.net教程

[ASP.net教程]TemplateMethod(模块方法模式)

/** * 模块模式 * @author TMAC-J * 将一个完整的算法分离,分成不同的模块 * 用于有很多步骤的时候,可能以后这些步骤还会增加,把这些步骤分离 * 将有共性的部分放在抽象类中 * 避免代码重复 * 有利于算法扩展 * 假设这个算法是人,人具有的共性是早上起来穿衣服,吃饭,工作 */public class TemplateMethod {    abstract class Person{        abstract void dressup();        abstract void eat();    abstract void work();         public void operate(){        dressup();        eat();        work();      }       }    public class Teacher extends Person{    @Override    void dressup() {      System.out.println("穿衣");    }    @Override    void eat() {      System.out.println("吃饭");    }    @Override    void work() {      System.out.println("工作");    }    //老师独有的备课环节,扩展了这个步骤    public void prepare(){      System.out.println("备课");    }      }    public class Student extends Person{        @Override    void dressup() {      System.out.println("穿衣");    }        @Override    void eat() {      System.out.println("吃饭");    }        @Override    void work() {      System.out.println("工作");    }      }    public void test(){    Person teather = new Teacher();    teather.operate();    Person student = new Student();    student.operate();  }  }