这个模式超级简单,不过怀疑在不带接口特性的语言中使用广泛,其实目的就是封装改变,怀疑在JAVA中那些对抽象类一直比较怀念的人会使用,而我一般则会比较多的使用接口,不过Template对于策略模式有所不同的就是,它在实现上更简单,不需要拖泥带水,原因是在抽象类中可以写实现方法,而接口中则不可以,比如把实现延迟到继承类中。
哈哈,还有个比较爽,就是可以使用多态性。
OK,现在不管sayHello方法怎么变,对别的类都没影响,哈哈。
public abstract class Say
{
/**
* 下面操作是我们希望在子类中完成
*/
public abstract void sayHello();
/**
*抽象类的好处就是可以在抽象类里实现方法,哈哈。
*/
public final void sayGood() {
System.out.println("I said Good!");
sayHello();
}
}
}
public class SayHello extends Say
{
/**
* 真正定义sayHello内容
*/
public void sayHello() {
System.out.printtln("I said Hello");
}
}
哈哈,还有个比较爽,就是可以使用多态性。
Say operation = new SayHello();
operation.sayGood();
OK,现在不管sayHello方法怎么变,对别的类都没影响,哈哈。