使用模版模式如何不实现不需要的抽象方法
下面是一段模版模式的代码
public abstract class AbstractClass {
public final void templateMethod1() {
//...
method1();
//...
method2();
//...
}
public final void templateMethod2() {
//...
method3();
//...
method4();
//...
}
protected abstract void method1();
protected abstract void method2();
protected abstract void method3();
protected abstract void method4();
}
现在我们需要写一个实现类 ImplClass
但是我们只需要AbstractClass
中的templateMethod1
方法。
现在问题来了,我只需要templateMethod1
而不需要 templateMethod2
方法,如果我直接继承AbstractClass
需要将所有的抽象方法都实现。
解决:
通过实现一个 Adaptor
类来进行过度。使用一个ImplAdaptor
类来将所有的抽象方法进行空实现,然后使用ImplClass
来继承 ImplAdaptor
然后重写需要的方法即可。
以上是 使用模版模式如何不实现不需要的抽象方法 的全部内容, 来源链接: utcz.com/z/517852.html