Poltergeists

This anti-pattern is also known as "Gypsy", "Proliferation of Classes", and "Big Dolt Controller Class". It is most frequently seen in application level.

It is well known when a developer overly abstracted the project, like keeping it overly safe by over-simplifications or adding too many layers of abstractions for "future proof".

Consequences

  • Bloated (but scalable) project.
  • Unnecessary / confusing navigation paths.
  • A lot of temporary, short duration of class/structure.
  • Class/structure that has operational name like start_process_alpha.

Symptoms

  • Redundant functions and classes.
  • Transient associations.
  • One master class invoking other smaller classes.

Causes

  • Lack of object-oriented architecture understanding from architect / designer.
  • Incorrect tool for the job.
  • Specified disaster caused by requirements.

Fixing Recipes

  1. Study the most used path.
  2. Revise the requirements. Eliminate possibility of specified disaster.
  3. Merge/delete the redundant path.