我目前正在面临一个难题:如何正确地将2个JavaScript对象连接在一起?
想象一个类似文本编辑器的应用程序,其中有几个不同的文件。我有一些HTML页面来表示笔记本的视图。我有一个文件notebook.js,其中包含NotebookController和Notebook View的类定义。
NotebookControler对象负责执行笔记本上的业务逻辑,例如“保存笔记本”,“加载笔记本”,“新建笔记本”。 NotebookView负责管理用于演示的HTML。 它执行低级别的操作,例如“获取/设置笔记本正文”,“获取/设置笔记本名称”。 它还监听DOM事件(onClick)并触发业务事件(saveNotebook)。这是我对Passive View模式的尝试。
我希望我的JavaScript客户端代码是面向对象的,关注点分离且易于单元测试。我希望使用模拟的NotebookView测试NotebookController,反之亦然。这意味着我不能只在NotebookController中实例化NotebookView。所以我该怎么做呢?
- 在notebook.js中放置一些逻辑来将两个对象连接在一起
- 在我的应用程序中有一个全局函数,知道实例化每一个并将它们连接在一起
- 使用依赖注入,可以是自己编写的依赖注入或像SquirrelIoc这样的东西
在Java中,选择是自然而然的:使用Spring。但那似乎不太适用于JavaScript。应该怎么做呢?