Kotlin Code Smell 11 - God Objects
Juggling Many Hats: The Perils of a God Object
TL;DR: Avoid taking on excessive responsibilities. Use the single responsibility principle.
Problems
Lack of cohesion
Tight coupling
Solutions
Split responsibilities.
Follow the Single Responsibility Principle.
Follow The Boy Scout Rule.
Examples
- Libraries
Exceptions
Sample Code
Wrong
class Soldier {
fun run() {}
fun fight() {}
fun driveGeneral() {}
fun clean() {}
fun fire() {}
fun bePromoted() {}
fun serialize() {}
fun display() {}
fun persistOnDatabase() {}
fun toXML() {}
fun jsonDecode() {}
//...
}
Right
class Soldier {
fun run() {}
fun fight() {}
fun clean() {}
}
Conclusion
In Object-Oriented Programming, we distribute responsibilities among multiple objects.