标签:通过 抽象 img bst 使用 als err ret protect
代码:
1 public abstract class AbstractClass { 2 //基本方法 3 protected abstract void doSomething(); 4 //基本方法 5 protected abstract void doAnything(); 6 //模板方法 7 public void template(){ 8 doSomething(); 9 doAnything(); 10 if(isAlarm()){ 11 System.out.println("i am ring"); 12 } 13 } 14 //钩子方法 15 protected boolean isAlarm(){ 16 return true; 17 } 18 }
public class ClassA extends AbstractClass { @Override protected void doSomething() { System.out.println("Class A doSomething"); } @Override protected void doAnything() { System.out.println("Class A doAnything"); } } public class ClassB extends AbstractClass { @Override protected void doSomething() { System.out.println("Class B doSomething"); } @Override protected void doAnything() { System.out.println("Class B doAnything"); } @Override protected boolean isAlarm() { return false; } }
总结: 利用了Java的抽象类的继承,通过向上转型,父类通过模板方法调用子类;产生不同的行为。钩子方法用的很巧妙(需要约束子类的行为时使用)
标签:通过 抽象 img bst 使用 als err ret protect
原文地址:http://www.cnblogs.com/Non-Tecnology/p/6064045.html