Video has been posted for my Obtiva Lunch GeekFest talk this week:
Here are the slides (with style change and some revisions): How I Learned To Apply Design Patterns
I would like to emphasize a few points that came up during the presentation from the audience:
- Corey Haines brought up the point that you can benefit from thinking about Design Patterns even if you do not implement them to the tee per the Gang of Four implementation (e.g. double dispatch for Visitor).
- Tyler Jennings brought up the point that you may sometimes need to split model responsibilities into a separate model responsible for performing the work, such as an OrderTransfer object for an Order. It becomes responsible for transaction-ability around product transfer between two orders.
- Corey Haines mentioned that not all developers tend to think of which Objects to assign responsibilities to up-front.
One thing that got left out of the presentation is explaining how to choose variations of a design pattern, such as State vs Strategy or Abstract Factory vs Factory Method depending on the situation. That leaves me room for a future blog post/presentation. :)
In the meantime, comments and questions are greatly encouraged.