Паттерн интерфейс — это класс, который обеспечивает программисту простой или более программно-специфический способ доступа к другим классам.
Канал событий — фундаментальный шаблон проектирования, используется для создания канала связи и коммуникации через него посредством событий.
Паттерн делегирования — это способ, которым объект внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту.