Description
A service that has one large interface with many parameters or requires much data and performs mostly heterogeneous operations with low cohesion.
Context
Derived from: “Long Parameter List”
Don’t get rid of options if doing so would cause unwanted dependency between components.
Cause
A long list of required inputs might happen after several types of operations are merged in a single element. A long list may have been created to control which functionality will be run and how. It’s hard to understand such lists, which become contradictory and hard to use as they grow longer.
Consequences
Bad understandability. Refactoring may reveal previously unnoticed Duplication of functionality.
Detection
A service requires a lot of information to perform its task.
Solution
Check what information is passed. Instead of passing a group of data received from another object, refer to the object itself. If there are several unrelated elements, sometimes you can merge them into a more abstract object.
Tags
microservices, soa, business, application, technology, cohesion, The Bloaters, within elements
Related smells
- Overgeneralization (relates)
- The God Object (relates)