C++でデザインパターンを実装していこうよ 第4回 Strategyパターン

"オブジェクト指向のこころ"で3つ目はStrategyパターンでしたね。

別にその順にしなきゃならないわけではないのですが、とりあえず今回はStrategyパターンにします。

今回のお題は
http://www.dofactory.com/Patterns/PatternStrategy.aspx#_self2
です。

C++で書き直したのが
https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/Strategy.cpp
です。

SortedListクラスが文字列のベクタを持っていて、そのソート方法をSortStrategyクラスの子クラスから選べるという内容です。

今回のサンプルではソートの結果がどれも同じで、さらにマージソートシェルソートはnot-implementedな感じでちょっとあれですね。
例えばですがStudentクラスに生徒の名前とか生年月日とかのメンバがあって、名前順に並べ替えるクラスや生年月日順に並べ替えるクラスとかを好きに切り替えられるとかそういう使い方をすればいいと思います。