任何人都可以請解釋這個例子嗎?我自相矛盾設計原理高風扇與高扇出
- 高風扇在:一個給定的類設計的方式,它的大量的其他類可以很容易地消耗它。
- 高扇出:一個類應該使用很多其他類。
兩者似乎都是自相矛盾的。任何人都可以用一個例子來解釋它嗎?可能在.NET框架中。
任何人都可以請解釋這個例子嗎?我自相矛盾設計原理高風扇與高扇出
兩者似乎都是自相矛盾的。任何人都可以用一個例子來解釋它嗎?可能在.NET框架中。
高風扇對於低等級是很好的規則。他們應該可以高級重用。高級粉絲是高級班的好規則。他們不應該「重新發明輪子」,而是使用現有的代碼 - 在低級別課程中找到。
所以規則並不矛盾,因爲它們涉及到不同的類。
你在哪裏閱讀了高扇出原則? AFAIK,高扇出不好。
http://it.toolbox.com/blogs/enterprise-solutions/design-principles-fanin-vs-fanout-16088
高扇出在面向對象的設計被指示時的對象必須與大量其它目的的直接處理。這表明班級相互依賴程度很高。一般來說,物體扇出度越高,整體系統設計就越差。
同樣在Code Complete中提到,高扇入低扇出是良好的類設計。
同意@Jeanno。高扇出是不可取的。
「模塊的扇出數是來自該模塊的調用次數。至少有三項研究得出結論:扇出平方是設計度量的一個組成部分,與缺陷的可能性很好地相關。格雷迪,RB,在電腦 「成功運用軟件度量」,第27卷,第9號,pp.18-25,1994年9月 DOI:10.1109/2.312034
真真正有問題的情況是,當你同時具有高扇入和高扇出:
這些術語來自電子產品:Fan-In是芯片具有的*輸入*數量,Fan-Out是它可以*驅動*或輸出到的設備數量(並行,同時)。例如,一個燈開關可能有一個輸入(電源),並且可以驅動許多燈泡(低扇入,高扇出)。對我來說,一個類調用另一個類來從它獲得*輸入*(我將*稱爲這個風扇*,但也許我錯過了一些東西......),並且在需要輸入時被其他類調用。但是一個班級可以打電話給另一個班級,讓事情也發生。換句話說,這個比喻是緊張和誤導。 – 2016-01-22 17:36:23