Code Smell 60 - Global Classes
Classes are handy. We can call them and invoke them any time. Is this good?
Problems
Coupling
Classes are global unless we use Namespaces.
Name polluting
Static Methods
Static Constants
Singletons
Solutions
Use namespaces, module qualifiers or similar
Avoid namespace polluting, keep the Global names as short as possible.
Class single Responsibility is to create instances.
Sample Code
Wrong
Right
Detection
We can use almost any linter or create dependency rules searching for bad class references.
Tags
- Globals
Conclusion
We should restrict our classes to small domains and expose just facades to the outside. This greatly reduces coupling.
Relations
More info
Credits
Photo by Alfons Morales on Unsplash
Write shy code — modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementations.
Dave Thomas
This article is part of the CodeSmell Series.
No Comments Yet