考虑下面的类调用父类方法自动
class A{
public void init(){
//do this first;
}
public void atEnd(){
//do this after init of base class ends
}
}
class B1 extends A{
@Override
public void init()
{
super.init();
//do new stuff.
//I do not want to call atEnd() method here...
}
}
我有几个B1,B2,... BN孩子这是已经开发的类。所有这些都扩展了A类。如果我想在它们中添加一个新的功能,最好的地方是在类A中的一个方法中定义它。但是,条件是该方法应该总是在之前自动调用子类的init()方法结束。 这样做的一个基本方法是在子类的init()方法的末尾再次添加atEnd()方法调用。但有没有其他的方式来巧妙地做到这一点?
如果这是为了保护类不变量,AOP将是一个非常糟糕的解决方案。 –
这是关于“做东西”;没有提到不变量。根据所提供的信息,我不确定“非常差”是否合适。 – duffymo