设计原则高风扇与高风扇输出

Hun*_*ter 7 .net c# design-patterns

有谁可以用一个例子向我解释一下这个问题?我自相矛盾了

  • 高扇入:一个给定的类,其设计方式使得大量其他类可以轻松使用它.
  • 高扇出:一堂课应该使用很多其他课程.

两者似乎都是自相矛盾的.可以用一个例子解释一下吗?可能在.NET框架中.

Dia*_*cus 11

High Fan In是低级别课程的理想规则.它们应该由更高级别的课程高度重复使用.高扇出是高等级的好规则.他们不应该"重新发明轮子",而是使用现有的代码 - 在低级别的类中找到.

所以这些规则并不矛盾,因为它们与不同的阶级有关.


Ren*_*soo 10

真正有问题的情况是当您同时拥有高扇入和高扇出时:

  • 低扇入、低扇出:在任一方向上几乎没有依赖性的模块。都好。
  • 高扇入,低扇出:高度依赖的模块,但本身并不依赖太多。就像一个低级实用程序库。
  • 低扇入,高扇出:一个模块依赖于许多其他模块,但如果有任何模块依赖于它的话。您确实无法避免使用一个顶级模块来将整个应用程序联系在一起,并且自然而然,该模块将依赖于系统中的每个其他模块。
  • 高扇入,高扇出:一个非常有问题的模块,只要它的许多依赖项中的一个发生变化,它就会中断/需要更改,而它反过来又会破坏系统中依赖它的许多其他部分。


Jea*_*nno 6

你在哪里读到的高扇出原则?AFAIK,高扇出很糟糕。

http://it.toolbox.com/blogs/enterprise-solutions/design-principles-fanin-vs-fanout-16088

当一个对象必须直接处理大量其他对象时,表示面向对象设计中的高扇出。这表明高度的阶级相互依赖。一般来说,对象的扇出越高,整个系统设计就越差。

Code Complete 中也提到了High Fan In with Low Fan Out 是很好的类设计。