This is a class that tries to do everything
This violates the single responsibility principle. Be suspicious for:
- Huge classes treating many other classes as data classes
- Classes with names containing words like “System”, “Subsystem”, “Manager”, “Driver”, “Controller”
- Classes with unrelated sets of methods working on separate instance variables
Decomposing God Classes
Represent every method as a node in a graph. Two methods are connected with an undirected edge if they access a common instance variable or one method calls another. The edges due to common field accesses have more weight than those due to calls. To decompose a class, find disconnected components in the graph.