任何人都可以请解释这个例子吗?我自相矛盾设计原理高风扇与高扇出
- 高风扇在:一个给定的类设计的方式,它的大量的其他类可以很容易地消耗它。
- 高扇出:一个类应该使用很多其他类。
两者似乎都是自相矛盾的。任何人都可以用一个例子来解释它吗?可能在.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