This is an example of different design patterns.