This anti-pattern applies to modules/classes which have a large interface with too many exposed functions/methods
Impact
- As the interface of these modules/classes is large, it violates the interface segregation principle (no client should be forced to depend on methods it does not use).
- Often these modules/classes have many incoming dependencies with multiple clients using the provided functionality.
- Any bug in these modules/classes has a wide impact on the system.
Characteristics
- The modules/classes have too many exposed methods.
Guidelines
- The module/ class should be considered for segregation by forming logical groups of exposed functions/ methods.
- If there are any functions/ methods which should not be exposed, they should be made private.