Интерфейсный конструктор типа

Как другие сказали, существуют шаблоны, конкретные из функционального программирования. Я думаю, что проблемой избавления от шаблонов разработки не является так вопрос переключения на функциональный, но вопрос функции языка .

Смотрят на то, как Scala покончил с "шаблоном"одиночка"": Вы просто объявляете объект вместо класса. Другая функция, сопоставление с образцом, помогает предотвращению неуклюжего из шаблона "посетитель". Посмотрите сравнение здесь: http://andymaleh.blogspot.com/2008/04/scalas-pattern-matching-visitor-pattern.html

И Scala, как F#, является сплавом функциональных OO. Я не знаю о F#, но он, вероятно, имеет этот вид функций.

Закрытия присутствуют на функциональном языке, но не должны быть ограничены ими. Они помогают с delegator шаблоном.

Еще одно наблюдение. Эта часть кода реализует шаблон: это - такой классик, и это является столь элементным, что мы обычно не думаем о нем как о "шаблоне", но это уверенный:

for(int i = 0; i < myList.size(); i++) { doWhatever(myList.get(i)); }

Императивные языки как Java и C# приняли то, что является по существу функциональной конструкцией для контакта с этим: "foreach".

5
задан John Saunders 18 July 2009 в 00:47
поделиться

2 ответа

Возможно, вам будет интересно прочитать этот вопрос и некоторые ответы на него по SO.

В основном он описывает, как компилятор C # создает экземпляры COM-объектов на основе интерфейсов. Это не обязательно та же ситуация, которую обсуждает Рихтер, но это интересный случай создания экземпляров интерфейсов.

3
ответ дан 15 December 2019 в 06:32
поделиться

Подумайте об этом в ситуациях, когда вы хотите рассматривать интерфейс как абстрактный класс. Хотя C # не поддерживает это.

0
ответ дан 15 December 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: