一个asb抽象类,现在她有三个方法,抽象方法A,已经实现的方法B,C。
现在我想有个一个规定,让每一个abs的实现类都在实现A方法的时候,内部在最后一步必须调用BC方法,这个有什么好办法么?
BC是带有参数的方法,其中的参数是A所产生的
java
不知道你的具体逻辑和实现,仅仅看你的描述可以如下实现:
abstract class Parent {
/**
* 抽象方法,不是公开的方法,只是d方法的一部分逻辑
* 生成参数
* @return
*/
protected abstract Object a(Object p);
private void b(Object p) {
// do something
}
private void c(Object p) {
// do something
}
/**
* 公开方法(设计模式中的:模版方法模式,大流程是父类实现的,子类去实现一些可扩展可变的步骤)
*/
public void d(Object bp) {
Object ap = a(bp);
b(ap);
c(ap);
}
}
abstract class Parent {
/**
* 公开方法(设计模式中的:模版方法模式,大流程是父类实现的,子类去实现一些可扩展可变的步骤)
*/
public void a(Object bp) {
Object ap = d(bp);
b(ap);
c(ap);
}
private void b(Object p) {
// do something
}
private void c(Object p) {
// do something
}
/**
* 抽象方法,不是公开的方法,只是a方法的一部分逻辑
* 生成参数
* @return
*/
protected abstract Object d(Object p);
}