Code Smell 114 — Empty Class
Have you encountered classes without behavior? Classes are their behavior.
TL;DR: Remove all empty classes.
Problems
- Bijection Fault
- Namespace Polluting
- Classes used as DTOs
- Classes used as global references
Solutions
1. Remove the classes and replace them with objects instead.
2. If your classes are Anemic Exceptions, remove them.
Context
Many developers still think classes are data repositories.
They couple different behavior concept with returning different data.
Sample Code
Wrong
Right
Detection
[X] Automatic
Several linters warn us of empty classes.
We can also make our own scripts using metaprogramming.
Tags
- Behavior
Conclusion
Classes are what they do, their behavior.
Empty classes do nothing.
Relations
More Info
An error arises from treating object variables (instance variables) as if they were data attributes and then creating your hierarchy based on shared attributes. Always create hierarchies based on shared behaviors, side.
David West
This article is part of the CodeSmell Series.