Kotlin Code Smell 11 - God Objects

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

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.

More info

Credits