https://acadbuild.ru/course/design-patterns-shablony-proektirovaniya/