.NET空間中的很多人拿起了溫莎城堡,並在他們的項目中實施它,在過去的一年中,我一直在努力弄清楚爲什麼IoC容器似乎被視爲一般的「最佳實踐」 ?我已經閱讀了很多關於溫莎等等的摘要和簡要解釋,但是其中的每一個都是抽象的,並且對於我所觸及的大多數項目來說似乎都不實用,但最近我一直遇到很多使用Windsor的項目,我不明白爲什麼。IoC容器適用性/情景演示?
C#/ .NET本質上支持基於接口的編碼,抽象對象,委託和事件。我們可以從核心語言實現IoC,並且使用Reflection等實例化實現已知接口的未知實例,而不訴諸IoC容器庫。
當應用YAGNI/AYGNI(你是否需要它?)我覺得溫莎已被過度使用。我當然可以看到IoC容器的好處,但我認爲這些好處是以額外的依賴性和元數據爲代價的(IoC容器特有的屬性和方法在覈心代碼中調用,.config文件在任何地方分散,app.config/web.config充滿了綁定標籤使得.config文件更難以編輯等),所以我試圖找出折衷。
這就是說,我正在接受這種可能性,我正在對這些意見/聲明做出全部所有關於無知的聲明,因爲我從未大量參與過使用Windsor或其他IoC容器庫的項目。我真正需要的是有人展示一個「平均」或「典型」項目,在這個項目中使用了一個IoC容器庫,爲什麼這應該是一個「最佳實踐」,對我來說,它似乎使一個乾淨的項目變得凌亂與依賴和元數據。
如果有人知道任何博客帖子,文章或書籍,將填補我,這將是非常棒的。 (我不爭論爭吵的緣故,但因爲我真的很想接受教育,是否應該讓我自己瞭解IoC容器)。