当我的构造函数是纯参数到属性设置器时,我不确定将类需要正常工作的其他代码放在哪里。
例如,在 JavaScript 中,我正在编写一个WindowMessageController
处理对象message
事件的程序window
。
为了使它起作用,我必须在某处附加处理程序:
var controller = this;
this.applicableWindow.addEventListener("message", function(event) {
controller.messageAction(event.data);
}
这些东西正确地属于哪里?
- 在构造函数中
- 在 .initialize() 方法中 - 引入时间耦合
- 在 WindowMessageControllerFactory.create(applicableWindow) 中——对于如此核心的代码来说,这是一个相当遥远的地方。这意味着即使是这么小的班级也会被分成两部分。
- 在组合根本身中 - 这会在一直做时增加它的大小
- 在其他一些类 WindowMessageRouter 中,只有一个方法,即构造函数,使用此代码
编辑
这种情况似乎很特殊,因为在应用程序中通常只有一个这样的控制器实例。然而,在更普遍的情况下,如果我正在创建一个Button
将包裹一些 DOM<button />
元素的类的实例,那么答案是什么?突然一个
button = buttonFactory.create(domButtonEl);
似乎更有用。