Які схеми дизайну GOF вже реалізовані як першокласні мовні функції у C #?


10

(Це питання було закрито в Stack Overflow через те, що він "занадто широкий" і "не справжній питання", тож, можливо, це тут більше? "

Натхненний цим питанням . Ми знаємо, що події - це реалізація структури спостерігача на мовному рівні. Чи існують інші схеми дизайну, реалізовані як мовні функції в C #? Я хочу зберегти це питання на C # -специфічному, оскільки існує багато моделей дизайну, реалізованих іншими мовами, і я хочу, щоб це було зосереджено.

Я не шукаю реалізацій шаблонів у BCL (наприклад, декоратор у багатьох WCF-класах чи Фабричний метод в WebClient), а моделей на рівні мови .

Поки що я знаю спостерігача ( event) та ітератора ( foreachу поєднанні з багатьма класами та інтерфейсами BCL). Напевно, є й інші очевидні, яких я пропускаю.

Відповіді:


1

Делегати - це фактично моделі стратегії


смішно, лише вчора колега сказав, що делегати - це реалізація командної схеми. Я думаю, залежить від того, як ви на це дивитесь (команда afaik повинна також інкапсулювати аргументи, але у випадку методу без аргументів ..)
stijn

1
Я б не сказав, що делегати - це реалізація моделей команд, принаймні я не бачу, як ви могли реалізувати такі речі, як скасувати / повторити, використовуючи лише делегати. Вони можуть бути частиною командного об’єкта, але це інша справа
Хомде,

0

Методи розширення - це абстрагування візерунка «Декоратор».


Не зовсім. Decorator дозволяє нам складати об’єкти під час виконання для додавання даних та поведінки.
Мартін Домс,

1
Щоправда - тому вони не так корисні, як справжні візерунки декораторів. Було б краще сказати, що більшість проблем, що вирішуються методами розширення, вирішуються за допомогою шаблонів декораторів іншими мовами?
vstrien
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.