Different design patterns exercises