2009-12-03 20 views
12

Q: Me gustaría tener una idea de los pros y los contras de definir comportamientos múltiples en el mismo archivo de módulo.Erlang: ¿comportamientos múltiples definidos en el mismo módulo?

E.g.

-module(someapp_sup). 
-behavior(supervisor). 
-behavior(application). 

El uso de este tipo de diseño, que puede guardar un archivo de módulo mientras no perder tanto en el lado de mantenimiento (toda la aplicación se inicia a través someapp_sup:start()).

+0

+1, me preguntaba lo mismo, aunque es una práctica muy confusa. – Dacav

Respuesta

15

Siempre que las devoluciones de llamada definidas en el comportamiento no entren en conflicto con una devolución de llamada de otro comportamiento (digamos que usted definió su propio comportamiento, por ejemplo), no hay nada de malo en hacer esto que no sea un código potencialmente más confuso. Obviamente, puede frenar eso con algunos comentarios bien colocados y colocar el código con sensatez en el archivo.

+5

Exactamente. Puede tratar comportamientos de la misma manera que las interfaces en el mundo OO. – Zed

+0

Eso es lo que pensé yo mismo, pero quería verificar con una multitud más conocedora. ¡Gracias chicos! – jldupont

Cuestiones relacionadas