Learning about design patterns
I’m starting to look into design patterns using a few different resources, so that I can expand my programming knowledge (not just of the patterns themselves but of the deeper OOP and software architecture principles). Hopefully I can also pass on some of the learning to others at work and more broadly.
The approach
- Reading the original Gang of Four’s ‘Design Patterns’ book
- Looking up practical examples in C# and other languages
- Writing about the pattern in my own words
- Writing my own code examples
- Explaining and discussing it with others - presenting ‘Design Pattern of the Week’ at work drums it into my own brain some more
What I produce goes into a public GitHub repo (stegriff/design-patterns) so that anyone can use it - and perhaps contribute and expand upon it (haha…) but while creating my own guide, I found that others are doing the same, like in this design patterns repo from kamranahmedse.
The learnings
So far I found the insights into OOP more valuable than the patterns themselves. I started with two of the simpler ones, Singleton and Factory Method. Honestly, just reading the material is pretty hard, and I found I didn’t grasp what the pattern was (or maybe why it was that way) until I wrote some examples. So I’d recommend that.
Please check out the design patterns repo if you feel it.