Problems
Over Design
Readability
Solutions
Measure the tradeoff of pattern usage.
Create solutions based on real-world names (essential) over accidental architecture.
Choose good names.
Sample Code
Wrong
class FileTreeComposite {
// name should be inferred from behavior
}
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
Choose 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.
Stay updated with my latest thoughts and ideas by registering for my newsletter. Connect with me on LinkedIn or Twitter. Let's stay connected and keep the conversation going!
Credits
- Code Smell 25 - Pattern Abusers by Maxi Contieri
Top comments (0)