Practice to implement several design patterns