Tengo el archivo principal de la aplicación "main.js":
import CharacterModel from './CharacterModel'; export default class MainManager { constructor(socketio) { this.io = socketio; } setup() { const character= new CharacterModel(); } function1(vars) {} function2(vars) {} etc... }
Y tengo el archivo "CharacterModel.js":
export default class CharacterModel{ constructor() { this.name = "test" this.points= 10; } start() { // how to get function1, function2 etc. here? } }
¿Cómo en ese caso puedo acceder desde CharacterModel.js a todas o muchas funciones de MainManager? ¿Cuál es la mejor manera y la mejor para el rendimiento si habrá muchas instancias de CharacterModel dentro de MainManager?
Sin el contexto adecuado y cuáles son los objetos reales en su historia, es difícil recomendar qué hacer, pero la forma obvia sería simplemente pasar la instancia de MainManager
a cada CharacterModel
en el constructor, y dejar que CharacterModel
haga llamadas a function1
/ function2
.
Probablemente desee separar la function123...
en clases específicas de dominio y pasarlas en el constructor a cada instancia que requiera acceso a este dominio.
Por ejemplo: supongamos que desarrolla un juego y tiene un ScoreManager
y un UserManager
, y también un ConfigManager
, puede crear todas las instancias dentro de MainManager
y pasar lo que sea necesario a las otras instancias (a través del constructor).
Esto se llama inyección de dependencia.