Abstract Factoryパターンの実装

Factory Method パターンの応用。
ポリモーフィズム活用例。

Factory Method では Factory クラスから指定インターフェイスを実装したクラスを Factory が渡された値を判別して切り替えていた。
Abstract Factory は Factory をも渡される値によって切り替えるやり方。Factory クラスをインターフェイスだけを見て操作するようになり、Factory から生成クラスもインターフェイスのみを見て操作をするようになる。よって必然的に全体の抽象度が上がる。

結構複雑なクラス関係になりがちなので、よく考えて設計、実装しないと面倒なことになる。