Kotlin Code Smell 017 - Pattern Abusers
Patterns are awesome, but with great powers comes great responsibility.
Play this article
Table of contents
Problems
Over Design
Readability
Solutions
Measure the tradeoff of patterns usage.
Create solutions based on real-world names (essential) over architecture (accidental).
Choose good names.
Sample Code
Wrong
class FileTreeComposite {
// name should be inferred from behaviour
}
class DateTimeConverterAdapterSingleton {
// ...
}
class PermutationSorterStrategy {
// ...
}
class NetworkPacketObserver {
// ...
}
class AccountsComposite {
// ...
}
Right
class FileSystem {
// These names map 1:1 to real world concepts
}
class DateTimeFormatter {
// ...
}
class BubbleSort {
// ...
}
class NetworkSniffer {
// ...
}
class Portfolio {
// ...
}
Conclusion
Chose when to apply a pattern solution. You are not being smarter by using too many patterns. You are smart if you choose the right opportunity to use the patterns.
Credits
Â