https://shaonmajumder.medium.com/navigating-the-terrain-of-design-patterns-unveiling-advantages-and-disadvantages-63c2913851c1