3

この 2 つの設計パターン (戦略と複合) を組み合わせる方法を示す例を探しています。ストラテジーの使い方は知っていますが、コンポジットはよくわからないので、組み合わせ方がよくわかりません。誰かが例やsmthgを持っていますか?
乾杯

4

1 に答える 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 に答える