のは、私は3つのPHPクラスがあるとしましょうPHP - 複数の子クラスに設定を共有し、それらの共有設定を一度インスタンス化する方法ShedBuilder、HouseBuilderとTableBuilderと、次のコード:
$worker_1 = new ShedBuilder(); // I only know how to build a shed
$worker_2 = new HouseBuilder(); // I only know how to build a house
$worker_3 = new TableBuilder(); // I only know how to build a table
$worker_1->build();
$worker_2->build();
$worker_3->build();
私は例えば、各共有へworker_1、worker_2、およびworker_3クラスの仕事のために同じツールセットを、欲しい、Iこの場合、ハンマー、ドライバー、釘などを使用できるように3人すべての作業者に作業を依頼します。しかし、worker_1は倉庫を建設し、worker_2は家を建て、worker_3は寝台を建設します。
ツールセットを一度設定してから3人の作業者のそれぞれに、自分が仕事に必要なツールにアクセスする方法を知っている最善の方法は何ですか?
私は、それぞれが親クラス、ビルダーから延びるが、それは私がそれぞれのインスタンスを作成するとき、私は彼らそれぞれにツールセットを提供しなければならないことを意味/表/ハウスビルダーをシェッドたことについて考え:私は
$toolset = new Toolset();
$toolset->addTool('hammer');
$toolset->addTool('screwdriver');
$toolset->addTool('nails');
$worker_1 = new ShedBuilder($toolset);
$worker_2 = new HouseBuilder($toolset);
$worker_3 = new TableBuilder($toolset);
たいツールを一度インスタンス化してから、3つのワーカー/クラスのすべてがツールセットについて知って、それぞれのアイテムを構築します。
私はPHPで何をしようとしているのですか?
はい、ツールセットを依存関係として注入するのは、あなたが探しているものです。それを実装する際に特に問題はありますか? – deceze
何らかの理由で実装しても問題ありません。ビルドには「最適」または「最適化」のようには見えませんでしたが、あなたのコメントは良い保証であり、この実装を進めます。 – ews2001