私はこれを包括的な方法で説明することができれば幸いです。 "ライブラリ"オブジェクトがあるとしましょう。この「ライブラリ」には、多くの「ブック」オブジェクトがあり、各「ブック」オブジェクトには「作成者」オブジェクトがあります。このような 何か:Dependencie注入苦闘
class library {
private $books = [];
public function addBook(book $book){
$this->books[]=$book;
}
function getAllBookTitles(){
foreach($this->books as $book)
$r[] = $book->getTitle();
return $r;
}
}
class book {
private $author;
private $title;
public function __construct(author $author){
$this->author = $author;
}
function getTitle(){
return $this->title;
}
function setTitle($title){
$this->title = $title;
}
}
class author {
public function __construct(){}
}
は今、私は本当に理解していないもの: いくつかのビューでは、私が唯一の図書館のすべての本のタイトルのリストが必要な場合は、なぜ著者のオブジェクトを構築する気? これは単なる例ですが、 "author"オブジェクトの作成にはかなり高価でした。イメージは、必要のないデータに対して多くのリソースを使用します。
「著者」をセッターメソッドで注入してオプションにすることができますが、ファクトリを使用して「ブック」オブジェクトを作成したいと思います。
最後に、あなたの工場(またはリポジトリ)にオブジェクトをビルドする必要があるオプションの依存性を伝える最良の方法は何ですか?
私のアプローチは完全に間違っているかもしれません。私の質問はあまり意味がありません。もしそうなら、私は謝罪します。 私は正しい方向に私を得るためにどんな助けも大いに感謝されるでしょう。
'dependazys'が本当に必要なときにのみ作成されるように、'レイジーローディングオブジェクトと依存性注入 'に関する良いテクニックを見つけようとしてください。 – JustOnUnderMillions
ありがとうございます。これは私を助けました。私は少し驚いています。怠惰なローディングと依存性のある注射のために頼むとき、結果はそれほどありません。誰もが興味を持っているトピックではありませんか?それとも、これはとても一般的な慣習ですか、私の理解の欠如は責任を負うことですか? – minychillo