Реализация интерфейсов в Erlang - PullRequest
9 голосов
/ 07 ноября 2010

Как реализовать интерфейс на эрланге? Какова структура модулей или как они настроены?

У меня многоуровневая архитектура, и я хочу реализовать интерфейсы на каждом уровне. Разрешение слою, который требует, чтобы нижний уровень обрабатывал некоторые задачи для доступа к этим задачам или их вызова.

Как будет выглядеть этот интерфейсный модуль с точки зрения функциональности?

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010

Интерфейс в смысле интерфейса Java или сигнатуры модуля ML не существует в мире Erlang с динамической типизацией.Вы должны будете задокументировать поведение в комментарии или предоставить контракт на -spec для диализатора, чтобы посмотреть.

В общем, лучший способ приблизиться к языку, это не предполагать, что вы можете отобразить свои существующие знания тожемного в этом, если вы не знаете язык, который «близок» по понятиям.Языки, близкие к Erlang - Пролог и Схема.Дальше идут Python и Ruby, но их опора на дизайн ООП ставит их на горизонте.Все, что написано статически, Ocaml, Haskell, Java, C #, C ++ и т. Д., Безусловно, за горизонтом.

0 голосов
/ 07 ноября 2010

Наиболее близким понятием в Erlang является определяемое пользователем поведение .Тем не менее, они, как правило, используются довольно редко.Обратите внимание, что проверяется только наличие и арность функций.Вы не можете проверить, что модуль фактически реализует некоторое поведение;вы просто вызываете функции обратного вызова, и если модуль «случайно» экспортирует функции с одинаковыми именами, вам не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...