Необходимо написать три программных кода на языке С#:
1. В первом коде необходимо применить два паттерна проектирования Итератор и "Наблюдатель" (Observer)
2. Во втором коде необходимо применить паттерн цепочка ответственности (цепочка обязанностей) и шаблон делегирования.
3. В третьем коде необходимо применить фабричный метод и паттерн строитель.
Необходимо написать коды на достаточно простом уровне, НЕ нужны большие коды. Необходимо чтобы было просто, понятно и коротко (насколько это возможно). Желательно с краткими пояснениями в самом коде.