A decorator allows us to dynamically extend the behavior of a particular object at runtime, without needing to resort to unnecessary inheritance. Let me give you a demonstration.
I bet you've used the template method design pattern on multiple occassions without even realizing it! This is an easy one to understand. Let's dig in.
Let's talk about the strategy design pattern and polymorphism. Like many patterns, you may find that you already use this one! You just didn't know that it had a name!
The chain of responsibility pattern is definitely an interesting one. It literally allows us to chain any number of objects, where each has the option of either handling a particular request, or deferring to the next object in the cycle.
Though certainly not for everything, you may find situations where the specification pattern can prove to be exactly what you need. In this lesson, we'll review the core concept, while using TDD and PHPUnit to drive our code.
In the previous lesson on the specification pattern, we reviewed the core fundamentals. However, we stopped just short of figuring out how to apply this concept to database queries. Let's figure that out, while, in the process, learning how to use (and test) Eloquent outside of Laravel.
View the source for this two-part series on GitHub.
The observer pattern is easily one of the most popular patterns in the bunch. And, luckily, it's one of the easier ones to comprehend. Let's review the essentials, while ultimately translating this new knowledge over to Laravel's implementation (in version 5).