GoFデザインパターンを実装した抽象クラスとインターフェースを追加.