【ふぁくとりーぱたーん】
Factoryパターン とは?
最終更新:
💡 オブジェクトの「生成工場」を作って分離する
オブジェクトの生成を別のクラスやメソッドに任せ、利用側から生成の詳細を分ける設計の総称。単純な生成関数や、Factory Method・Abstract Factoryなどの形がある。
📌 このページのポイント
- 利用側は生成の窓口を呼び、具体的な生成処理を任せる
- Factory Methodでは、生成する具体的な型をサブクラス側で決める
- Abstract Factoryでは、関連する種類の製品を同じ系列で作る
- 切り替えや生成の変更に役立つが、単純な生成に必ず必要ではない
なぜnewで直接作らないの?
具体的なクラスの生成を利用側に散らすと、変更が多くの場所に及ぶことがあるよ。生成を窓口に任せれば、その詳細を分けられる。ただしnewを禁止する原則ではないし、必ず変更が1箇所だけで済むわけでもない。生成側の内部でnewを使ってもよいんだ。
Factory MethodとAbstract Factoryの違いは?
実際にはどう使うの?
使いすぎの問題は?
生成が単純で変更の必要もないなら、クラスや呼び出しの段階を増やすだけになる場合があるよ。どの生成の詳細を隠したいか、どこを切り替えたいかを考える。単純なFactoryから必ずFactory Methodへ進むという順番でもないし、テストの差し替えが自動でできるわけでもないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Factoryパターン」って出てきたら「オブジェクトの生成を専用の仕組みに任せるパターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Factory Pattern」 = 工場パターン
💬 Factory(工場)のように、注文に応じた製品(オブジェクト)を生産する仕組みだよ