Javascript Three.js与MVC
在three.js中,我创建了一个基本的“英雄创造”程序。类似于长老卷轴通过头部、身体等交换来创建完整的角色。我想让其他用户编辑同一个英雄,从而使它更具交互性。每个用户只需从服务器读取相同的JSON文件 为了更好地构造代码,我想使用MVC模式,但我对如何应用它感到困惑。Javascript Three.js与MVC,javascript,design-patterns,model-view-controller,architecture,three.js,Javascript,Design Patterns,Model View Controller,Architecture,Three.js,在three.js中,我创建了一个基本的“英雄创造”程序。类似于长老卷轴通过头部、身体等交换来创建完整的角色。我想让其他用户编辑同一个英雄,从而使它更具交互性。每个用户只需从服务器读取相同的JSON文件 为了更好地构造代码,我想使用MVC模式,但我对如何应用它感到困惑。 我想我所有的事件监听器都是一个控制器,但是视图是否就是我的three.js render(),模型是否就是底层的JSON?特别是将MVC应用到这个图形领域是我的大问题。如果这是一种非常糟糕的形式,您对另一种模式/结构方式有何建议
我想我所有的事件监听器都是一个控制器,但是视图是否就是我的three.js render(),模型是否就是底层的JSON?特别是将MVC应用到这个图形领域是我的大问题。如果这是一种非常糟糕的形式,您对另一种模式/结构方式有何建议 您可以使用MVC和桥接模式的组合 在这种组合中,您可以抽象视图,并使用桥接模式来允许以几种不同的格式创建视图
以下链接可能有助于你:
容易理解,你可以考虑:
var modelObject = {};
var viewObject = {};
var controllerObject = {};
modelObject.str = "Welcome";
viewObject.showStr = function(modelObject) {
console.log(modelObject.str);
}
controllerObject.handler = function() {
viewObject.showStr(modelObject);
}
您现在可以通过handler
调用函数,而onclick
或任何事件等
通常,模型是数据/数据源的抽象
视图层应:
- 包含渲染逻辑
- 处理用户输入并将其转发到控制器层(使用策略模式)
- 保持三个.js对象与模型同步
- 处理用户输入并更新模型
你可能会发现它很有用。你找到适合你的东西了吗?不幸的是,没有。最后我只是将代码组织成模块。当我有空闲时间时,webgl mvc框架可能是一个有趣的项目:)