An object that knows too much or does too much.
TL;DR: Don't take too many responsibilities.
Problems
Cohesion
Coupling
Coupling: The one and only software design problem
Maxi Contieri ・ Feb 6 '21
#webdev
#programming
#oop
#tutorial
Solutions
- Split responsibilities.
- Follow Single Responsibility Principle.
- Follow The Boy Scout Rule.
Examples
- Libraries
Exceptions
Sample Code
Wrong
class Soldier {
run(){}
fight(){}
driveGeneral(){}
clean() {}
fire() {}
bePromoted() {}
serialize() {}
display() {}
persistOnDatabase() {}
toXML() {}
jsonDecode(){}
//...
}
Right
class Soldier {
run() {}
fight() {}
clean() {}
}
Detection
Linters can count methods and warn against a threshold.
Tags
- Cohesive
Conclusion
Libraries were fine in the 60. In Object-Oriented Programming, we will distribute responsibilities among many objects.
Also Known as
- Large Class
Relations
More info
Credits
Photo by Francisco Ghisletti on Unsplash
This article is part of the CodeSmell Series.
How to Find the Stinky parts of your Code
Maxi Contieri ・ May 21 '21
#codenewbie
#tutorial
#codequality
#beginners
Last update: 2021/06/21