我正在寻找在 javascript 中模拟接口和 DTO 来解决这个问题。对象 dto、对象调用者和同一接口 IWorker 的不同实现。
调用者将收到一个用于实例化的 dto,将用户输入提供给它,然后调用 Iworker 的正确实现(方法执行)。
我希望在我的代码中我只有一个 dto 实例和一个调用者实例,所以每次用户做出另一种选择时我都会调用 caller.CallWorker()
请告诉我这个想法是否好,欢迎使用 javascript 实现
非常感谢
编辑:感谢您的帮助,将采用 Bergi 解决方案,但我还需要一件事 所以我的实现将是这样的:
var caller = {
callWorker: function(obj) {
if(obj.id == 1) Worker1.execute();
if(obj.id == 2) Worker2.execute();
if(obj.id == 2) Worker3.execute();
}
};
但这意味着我必须在 html 页面中添加所有工作人员定义(每个实现一个 js 脚本)。我只想动态添加脚本,实际上活动工作者依赖于很多业务逻辑,所以我将动态包含它们以使页面中只有活动工作者。你建议我怎么做?做 caller.callworker 中的所有条件吗?或者有更优雅的方法。