/** * 模塊模式 * @author TMAC-J * 將一個完整的演算法分離,分成不同的模塊 * 用於有很多步驟的時候,可能以後這些步驟還會增加,把這些步驟分離 * 將有共性的部分放在抽象類中 * 避免代碼重覆 * 有利於演算法擴展 * 假設這個演算法是人,人具有的共性是早上起來穿衣服,吃飯,工作 ... ...
/** * 模塊模式 * @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(); } }