skillup

技術ブログ

プログラミング全般

Simple Factoryパターンについて

投稿日:

今回はデザインパターンの一種であるSimple Factoryパターンに関して。

Simple Factoryパターンとは

正確な定義は色々と難しいと思いますが、わかりやすく言うと、

サブクラスなどがある場合、インスタンス化する部分を別オブジェクトに任せ、カプセル化するデザインパターン

だと認識しています。この任せられる別オブジェクトの部分をSimpleFactoryなどと言います。

サンプルコード

抽象的な例だと難しいので、コードを見てみます。

Pet.php

Dog.php

Cat.php

AnimalFactory.php

AnimalController.php

https://github.com/umanari145/phptips/tree/master/factory

解説

AnimalFactoryの中でCatやDogのインスタンスが生成され、AnimalControllerからはインスタンス生成が見えないため、疎結合になります。

このため、AnimalControllerがサブクラスの変更(CatがDogに変更されるなど、)の影響を受けないと言うメリットがあります。

SimpleFactoryメソッドを使わない場合、AnimalControllerの部分にDogやCatのインスタンス生成を書かないといけないため、変更の影響を受けてしまいます。

参考リンク

【PHPで学ぶデザインパターン入門】第5回 Factoryパターン

-プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Eclipseのシンタックスハイライト

先日PCがクラッシュした時にEclipseを入れなおしたんですが、普段あまり意識せずに使っていたのでhtmlのシンタックスハイライトをだすためだけに2時間ぐらい費やしました・・・自戒の意味も込めてメモ …

no image

画面テストのツールに関して

Unitテストに関してはxUnit一択だと思いますが、UI系のテストツールについて。 IDE(コードを書かずにすむマクロ系)に関して全てChromeで動くことを確認しています。 Contents1 ツ …

no image

ExcelVBAに関して(主にプロシージャ)

いつも半年ごとぐらいに触っていてあまり知識が蓄積しないので(汗)これを機につまづいたところをちょっとメモ。 Contents1 基本2 メモ3 参考リンク 基本 基本的な変数の代入や条件分岐、ループな …

no image

クラスメソッドとインスタンスメソッド

以前staticメソッドを定義したときに、記法がインスタンスメソッドの呼び方でも呼べてしまうことがあったので、これを機にインスタンス・クラス×変数・メソッドちょっと調べてみました。 言葉で書くよりコー …

no image

小〜中規模程度のWEBアプリ作成で気をつけるべきこと

初見の処理系(ライブラリ操作)などは休日などで最小パターンを確認しておくこと。実務で何時間も悩むと非常にストレスがたまる テーブル設計命。あとで終えるようにトレースができるような値を入れておくこと。 …