https://apprendre-la-programmation.net/design-pattern/