Few things have helped me more in my career than understanding how you use the Object Oriented Features of Apex to write code that is flexible, testable and maintainable. I have done quite a few YouTube videos on this topic and have a lot more to do. I was not happy with my previous Repo and its organization. This is an attempt of my part to give back to the community with repo that offers implementations of all the class Gang of Four patterns in Apex. I grant you that my implementations will often be trivial and contrived. But I hope that helps make the underlying ideas easy to understand.
If I have also published a video about the pattern I have added a link to in the heading.
Design patterns that are concerned with the creation of objects
- One of my every day go to patterns. Code is based on Head First Design Patterns
- UML diagram
This can be a bit more involved but is also the ultimate in closed for modification but open for extension. By making our factory reflective we never need to update it when we add new concrete types.
- Unique to Apex and Salesforce. Refactor the simple factory pattern with custom metadata. Wow your colleagues with the Type class. One of my favorite Apex party tricks.
Another implementation using the pizza example from Head First Design Patterns. What do we do if we want our Pizza Store to access different factories?
An easy pattern to understand and always useful for keeping your governer limits under control
These patterns are all about the communication between objects. How can objects cooperate to perform tasks.
When one object changes state we want to notify all the depenents. But we want to publisher and subscribers to be loosely coupled.
##Refactoring I have begun to add some of the examples from Martin Fowler's Refactoring and Joshua Kerievsky's Refactoring to Patterns
Nothing in this repo would be possible without the books below. And most of the implementations will be based on ones found in these books. If they are not on your shelf they should be.