[[デザインパターン]]

*Factory [#d4f39eb4]

インスタンス生成を請け負うクラスを作るよ!というパターンです。
工場をまんまイメージすると理解が楽になります。

**いつ使うのか [#xb10c672]

インスタンスの生成を抽象化したいときに使いませう。
こんなコードがでてきたとき or でてきそうなときは適用できると考えてもよいでしょう。
#geshi(php){
#geshi(php){{
<?php
$obj = new Object();
$obj->setHoge($hoge);//メンバを初期化
$obj->setFoo($foo);//メンバry
$obj->setBar($bar);//ry
...
...
...
?>
}
}}
これが
#geshi(php){
#geshi(php){{
<?php
$factory = new ObjectFactory();
$obj = $factory->create( array( $hoge, $foo, $bar, ... ) );
?>
}
}}
こんなん。
前者だと、工場の生産ラインを直に見てる感じ。後者は工場の中身は見てない。

**メリット [#reb62d07]

インスタンスの生成が抽象化できる。「setHogeしてsetFooしてsetBarして...」から「ObjectFactoryにcreateさせる」という風に人間に分かりやすいコードになる。←これ重要

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS