Приведите примеры структурных шаблонов проектирования.
• Адаптер (Adapter) - Объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
• Мост (Bridge) - Структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
• Компоновщик (Composite) - Объект, который объединяет в себе объекты, подобные ему самому.
• Декоратор (Decorator) - Класс, расширяющий функциональность другого класса без использования наследования.
• Фасад (Facade) - Объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
• Приспособленец (Flyweight) - Это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
• Заместитель (Proxy) - Объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.