我想从已经分配给变量的类中重写方法。
例如:
inventory = new Inventory( );
/* Some code here that changes how inventory
must behave or whatever */
inventory
{
@Override ...
}
也许您会想到这样的事情(如果您可以实施默认策略以使其更简洁,则可以代替null):
public interface Strategy {
public void doSomething();
}
public class Inventory {
Strategy strategy;
public Inventory() {
// ...
}
public void doSomething() {
if (strategy == null) {
System.out.println("strategy is empty");
} else {
strategy.doSomething();
}
}
public Strategy getStrategy() {
return strategy;
}
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
}
那这个
Inventory inventory = new Inventory();
inventory.doSomething();
inventory.setStrategy(new Strategy() {
@Override
public void doSomething() {
System.out.println("strategy is now something different");
}
});
inventory.doSomething();
显示如下:
strategy is empty
strategy is now something different
对于更详细的版本,您可以看一下策略模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句