Je suis actuellement confronté à une énigme: Quelle est la bonne façon de relier 2 objets javascript?Quelle est la bonne façon de relier 2 objets javascript?
Imaginez une application comme un éditeur de texte avec plusieurs fichiers différents. J'ai une page HTML qui représente la vue pour le cahier. J'ai un fichier notebook.js qui contient des définitions de classe pour NotebookController et Notebook View.
Objet NotebookControler responsable de l'exécution de la logique métier sur le portable, par exemple «Enregistrer le bloc-notes», «Charger le bloc-notes», «Nouveau bloc-notes». NotebookView est responsable de la gestion du code HTML utilisé pour la présentation. Il fait des choses de bas niveau comme "get/set notebook body" "obtenir/définir le nom du portable." Il écoute également les événements DOM (onClick) et déclenche les événements professionnels (saveNotebook). C'est ma tentative pour le modèle Passive View. Je souhaite que mon code JavaScript côté client soit orienté objet, séparé des problèmes et testable à l'unité. Je veux tester NotebookController avec un faux NotebookView et vice versa. Cela signifie que je ne peux pas simplement instancier un NotebookView dans le NotebookController. Alors que je
- Mettez un peu de logique dans mes notebook.js que les fils les 2 ensemble
- ont une fonction globale dans mon application qui sait instancier un de chacun et de les câbler
- Utilisation Dependency Injection, Soit d'origine locale ou quelque chose comme SquirrelIoc
En Java, le choix est naturel: utilisez Spring. Mais cela ne semble pas très JavaScript. Quelle est la bonne chose à faire?
Peut-être que je manque quelque chose, mais pouvez-vous pas atteindre testabilité en faisant juste que vous utilisez l'agrégation au lieu de composition? –
C'est l'idée. Mais la question est vraiment quelle est la bonne façon de câbler cette agrégation d'objets? –