https://medium.com/@nikitinsn6/unlocking-the-power-of-structural-design-patterns-a-detailed-review-using-c-and-python-6715d6cde513