Pull to refresh

Comments 4

А почему цепочка поведения? вроде как это просто «поведение»?
А цель введения ген_сервера? Обычно имплементация поведения идет в разрезе:
Mod:some_action

где Mod — переменная в которой хранится атом — имя модуля.
В вашем случае ген_сервер просто реализует некоторый функционал, но никто и нигде не знает «тип» этого ген_сервера.

Это пример того как оно работает ( или может работать) в случае когда такая цепочка оправдана.
А это — пример.
В реальности вы же используете supervisor. Потому-что он дает явное преимущество и реализует нужный функционал. А то что он в свою очередь построен на gen_server не является информацией необходимой для его использования.

В реальности у меня были очень оправданые случаи, например при реализации storage api для GCS и S3. XML API для GCS и API S3 очень похожи. Разница в основном в основных путях, создании подписей и других подобных мелочах. Но основной код был одинаков и был вынесен в отдельное поведение. Которое в свою очередь наследовало gen_server для ключей, контроля и прочих мелочей.
Sign up to leave a comment.

Articles