Factory methodパターンの解説と例題
# はじめに この記事では、デザインパターンの生成パターンのひとつである、Factory methodパターンについて解説と例題を使って学びたいと思います。[^1] [^1]: [https://ja.wikipedia.org/wiki/Factory_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3](https://ja.wikipedia.org/wiki/Factory_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) ## Factory methodパターンとは Factory methodパターンとは、オブジェクトの生成方法をスーパークラスで定め、具体的な処理をサブクラスで行うデザインパターンの一つです。オブジェクトの生成と具体的な処理を分離することで、より柔軟にオブジェクトを利用することができます。Factory methodパターンはTemplate methodパターンをオブジェクト生成の場面に適応させたデザインパターンと言えます。 Template methodパターンとは、処理の枠組みをスーパークラスで定め、具体的な処理をサブクラスで行うデザインパターンです。Template methodパターンでは、スーパークラスで抽象メソッドを定義し、サブクラスでそれらを実装します。Factory methodパターンでは、抽象メソッドがオブジェクト生成のメソッドになります。つまり、Factory methodパターンはTemplate methodパターンの特殊な場合と言えます。 Factory methodパターンでは、以下のような役割があります。 - Product: 生成されるオブジェクトの抽象クラス - ConcreteProduct: Productの具象クラス - Creator: Productを生成するメソッドを持つ抽象クラス - ConcreteCreator: Creatorの具象クラスで、ConcreteProductを生成するメソッドを持つ CreatorクラスにProductを生成するときのインターフェースのみ定義して、実際に生成されるProductの具象クラスはCreatorの具象クラスに委ねるのが特徴です。 ...