我正在寻找一个示例,展示如何组合这两种设计模式(策略和复合)。我知道如何使用 Strategy,但是 Composite 对我来说还不够清楚,所以我真的不知道如何组合它们。有人有例子或smthg吗?
干杯
问问题
3574 次
1 回答
10
好的,这是一种突如其来的方法(在伪 Java 代码中):
interface TradingStrategy {
void buy();
void sell();
}
class HedgingLongTermStrategy implements TradingStrategy {
void buy() { /* TODO: */ };
void sell() { /* TODO: */ };
}
class HighFreqIntradayStrategy implements TradingStrategy {
void buy() { /* TODO: */ };
void sell() { /* TODO: */ };
}
class CompositeTradingStrategy extends ArrayList<TradingStrategy> implements TradingStrategy {
void buy() {
for (TradingStrategy strategy : this) {
strategy.buy();
}
}
void sell() {
for (TradingStrategy strategy : this) {
strategy.sell();
}
}
}
// sample code
TradingStrategy composite = new CompositeTradingStrategy();
composite.add(new HighFreqIntradayStrategy());
composite.add(new HedgingLongTermStrategy());
composite.buy();
于 2012-12-12T16:05:35.490 回答