Comparison
God objectvsPoltergeist
God object
one class is four thousand lines and every feature branch touches it.
One class or module that knows about and does far too much, so every change goes through it. It is the extreme of low cohesion and it has a distinctive organisational symptom: it is the file with the most merge conflicts and the one nobody wants to review. Splitting one is usually a months-long project, which is the argument for noticing at eight hundred lines rather than at four thousand.
Full entry →Poltergeist
the class exists only to call one method on another class and then disappears, and it has Manager in its name.
A short-lived object with no state and no real responsibility, existing only to invoke something else. It usually arrives from applying a layering or naming convention mechanically — every entity gets a manager, every action gets a controller — and the work it appears to do belongs elsewhere. Deleting it and calling the real thing directly is nearly always the whole refactoring.
Full entry →