https://thecodecadence.medium.com/structural-design-patterns-a-comprehensive-guide-for-developers-c0cde4a86319