skillup

技術ブログ

プログラミング全般

Simple Factoryパターンについて

投稿日:2020年5月25日 更新日:

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

Simple Factoryパターンとは

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

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

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

サンプルコード

以下で簡単なサンプルを書いております。

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

気をつけたいトリガー系の処理など

実務でひやっとすることがあり、自分への戒めも込めてメモします。 Contents1 MySQLのcurrent_timestamp on update current_timestamp2 Larav …

no image

テストコードの書き方の注意点

テストコードを実装する様になって1年ぐらいたったのですが、そこできづいたことなどを。 Contents1 タイトルをわかりやすく2 値をなるべく具体的に書く3 疑似的な仕組みはなるべく避ける(例:Mo …

no image

webの仕組み その2 リクエストとレスポンス

クライアント(ブラウザ)はサーバーとの接続を確立した後、各種リクエストを送信します。サーバーはそれにこたえテキストや画像などのリソースをクライアントに転送します(これがレスポンスです。) Firefo …

no image

テストコードを読みやすくする

リーダブルコードも最終章に近づいてきましたね。 今回はテストコードについて。 以前のプロジェクトではテストコードを書いていたのですが、今携わっているプロジェクトでは書いてないです・・・ テストを書く目 …

no image

phing

今までphpunit,phpmd,phpcodesniffer,phpdocumentなどのツールをいろいろと試してきますが、個別に動かしていると大変面倒ですので、これを一気に行えるライブラリがありま …

アーカイブ