Make examples to understand some design patterns