Эрланг и Синглтон хорошая практика? - PullRequest
9 голосов
/ 11 декабря 2011

Поскольку Erlang не является действительно объектно-ориентированным, реального одноэлементного класса не существует, но я думаю, что зарегистрированный процесс можно использовать как один.

Является ли хорошей практикой использование зарегистрированных процессов для этого внутри приложения длясделать доступ проще?Недостаток: я вижу, что, например, вы не можете запустить более одного экземпляра такого приложения в одном узле.

Возьмите в качестве примера приложение графического интерфейса пользователя с процессом, управляющим событиями, и некоторым другим, ответственным за звук.Было бы хорошей практикой сделать эти два "синглтона" зарегистрированными процессами и называть их как sound:play(file_name) вместо хранения pid и выполнения sound:play(Pid, file_name)?

1 Ответ

9 голосов
/ 11 декабря 2011

Довольно часто используется gen_server под зарегистрированным именем, чтобы сделать именно это. Вы можете экспортировать функции из того же модуля, которые просто выполняют вызов gen_server: для указанного именованного процесса.

(Возможно, Эрланг более "действительно" ОО, чем то, к чему вы, вероятно, привыкли. Но это не тот вопрос, о котором идет речь.)

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