A Global Hub is a component that has both, a high number of global dependents and is also globally dependent on too many components. In other words, it is both a global butterfly and a global breakable. Thus, it has a high number of both global incoming dependencies as well as global outgoing dependencies. The presence of global hubs results in high maintenance issues in the system.

Impact

  • Global Hubs break the reusability of modules and make the code difficult to understand and to maintain.

Characteristics

  • A Global Hub is directly or indirectly dependent on many other classes.
  • A Global Hub object is used by too many other objects.
  • Dependencies can be in the form of method calls, member access and local variable access.

Example(s)

  • Global Hub has both incoming and outgoing dependencies.
  • C2, C3, C5, C7 are incoming dependencies and C4, C1, C21 are outgoing dependencies.

Guidelines

Please refer to the guidelines of Global Butterfly and Global Breakable. Both have to be solved in order to fix the Global Butterfly issue.