问题标签 [mediator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 我需要帮助在使用 MongoDB(和猫鼬)的 NODEJS 程序中实现 Facade+Mediator 以实现持久性
我非常喜欢玩 NodeJS 和 MongoDB。我想构建一些可能是一个非常大的应用程序的东西。所以我尝试尽可能多地解耦设计应用程序。
我认为抽象持久层以使业务逻辑不知道数据是如何存储的会很好(我不确定将来是否必须将 MongoDB 换成 RDBMS)。知道这一点后,我考虑过创建一个具有数据存储所需操作的 FACADE,使用 Mediator 赞助人订阅 FACADE 操作并实施它们。该中介将使用事件侦听器连接到外观,而外观将使用事件发射器。然后,订阅中介者的模型将包含所有猫鼬模式,并将负责所有数据库/持久性问题。(有意义吗?)
我看到猫鼬对数据模型非常严格。IE。我看到预计我不会有一个 Player 原型,而是一个 PlayerSchema 和一个 PlayerModel。所以:
- 我应该使用猫鼬数据模型吗?(这样做有什么限制/问题吗?-除了如果我关闭数据库就必须重写它们-)
- 我应该将猫鼬数据模型转换为我的业务逻辑原型(通过这个 FACADE 组件)吗?我应该尝试另一个 ORM 来访问 MongoDB 数据吗?
我真的很想进行这些抽象,因为我对 JavaScript、Node 和所有这些技术都很陌生(所以我想测试隔离的每个部分,并且如果我看到有更好的解决方案能够切换层)。
任何建议都将受到欢迎!
javascript - 从RequireJS开始,模块之间的通信
我是一名 ActionScript 3 开发人员,他刚刚开始尝试构建大型 JavaScript 应用程序。所以我理解模块并且理解 AMD 是一个很好的使用模式。我阅读了 RequireJS 并实现了它。但是,我仍然不明白的是如何实现跨模块通信。我知道应该有某种调解人......我阅读了文章和帖子,但仍然无法理解如何简单地实现它。这是我的代码,简化:
main.js
播放器.js
AssetsManager.js
任何“傻瓜”帮助将不胜感激:) 谢谢。
php - 实现 mediator.js 时的命名空间问题
我有一个网页(php),它根据外部上传的内容处理一系列ajax表单和简单的js隐藏/显示div,供组织的注册成员使用。为了构建一个更易于维护和扩展的站点,我一直在研究使用架构模式来防止无休止的 jQuery 链接;也就是中介模式。
有人用过 Jack Lawson 的Mediator.js吗?基本上,您可以使用 Mediator 订阅以侦听“通道”(命名空间),并在同一通道上发布某些内容时运行一个函数(如果需要,甚至在响应之前检查谓词 true/false 函数)。
目标: mediator.js api 似乎具有巨大的潜力,并迫使我实现有效的 xhtml 文档并正确使用命名空间。实现中介模式似乎是解耦 javascript 代码并使复杂的 web 应用程序在未来更易于维护和扩展的好方法。
挫折: 我相信我理解由 mediator.js api 实现的命名空间和中介模式。我已经能够通过特定“通道”(命名空间)上的中介成功发布 DOM 属性事件,并订阅这些通道并对它们做出反应——甚至使用 mediator.js 方法在该通道上测试“谓词”以确定是否需要回应。但是由于新的命名空间,我的 CSS 现在无法识别元素。
我创建了这样的命名空间:
然后将它们应用于 html 元素,例如:
我相应地更改了css文件:
尽管如此,页面的css格式还是被破坏了。
呈现页面的 doctype 部分如下所示:
我不完全确定这不是必需的,但我尝试添加:
这会产生以下 XML 解析错误:
XML 解析错误:格式不正确
它指向这个命名空间定义中的等号xmlns:active='http://www.xxx.com/tracks/active'
作为问题,但我阅读的每个文档都显示这是正确的语法。
问题:
- 为什么在实现上面显示的命名空间后我的 CSS 会损坏?
- 为什么,当我
<? header('Content-Type: application/xhtml+xml'); ?>
在标题中添加时,我会收到提到的解析错误?
感谢您的任何帮助。
javascript - 使用中介发布/订阅模式时路由主干应用程序
我正在主干中构建一个应用程序,结合来自https://github.com/addyosmani/backbone-aura/的模块化和外观/中介 pub/sub 模式,以在模块之间发送消息以保持干净的代码库。
在auraRouter
的整个应用程序示例中,我发现只有自述文件描述了路由器作为模块本身的一部分的理想用途:“在 Backbone.js 术语中,小部件由模型、视图、集合和路由器以及任何小部件呈现所需的模板。”
所以我尝试了多种方案来实现一个可扩展的路由系统(可扩展的意思是模块可以指定自己的子路由),包括一个接受消息set-route
来设置路由的路由模块,以及监听route
消息的模块。我还为每个模块使用了一个子路由器。问题似乎是在初始页面加载时,由于消息传递的“异步”性质,路由及其回调可能未在全局路由器解析 URL 时定义。您可以想象我可能需要在启动路由器模块之前对所有消息进行排队。
我想实现一些干净的东西,这是有道理的。我还在考虑可能首先解析所有小部件的所有路由,然后实例化路由器,这使得路由器模块成为一种特殊情况,因此不应该成为模块的一部分。
路由器应该是一个使用消息的模块,还是应该是一个扩展,或者是模块可以访问的全局架构的一些更高阶的部分?
我知道这是一个加载的问题,在此先感谢您的帮助!
javascript - 使用模型中的 Backbone Mediator 发布事件
从 Backbone 模型发布事件是一种好的做法/模式吗?
mvvm - 信使类可访问性
我正在使用 MVVM Light 的 Messenger 类。我想知道这个类是否应该只被 ViewModels 使用,或者它是否也可以被其他类使用。如果是后者,那还有谁可以使用呢?国际奥委会会议?服务?意见?
谢谢!
mvvm - 是否允许 IoC 容器使用 Messenger/Mediator 类?
我是 IoC 的新手,我想知道最佳实践是否允许容器使用中介类,例如 MVVM Lite 的 Messenger。容器可以注册和发送消息吗?
非常感谢你!
javascript - Backbone + RequireJS + Mediator Pattern 导致 View Logic 短路和无限循环
我目前正在使用Backbone.Mediator在我的 Backbone + RequireJS 项目中利用 Mediator Pattern 的优势;但是,我遇到了 Pattern 的一个特殊行为,不确定它是否是“设计使然”,或者更确切地说,不是 Mediator Pattern 的标准行为,而是插件中的一个错误。
作为一个人为的例子:
AMD 模块 1
AMD 模块 2
AMD 模块 3
我认为它会像这样工作:
然而,事实是因为View2SiblingDiv
的另一个实例订阅了 Channel 'list:switch',在它创建之后,它也会被仍然在 Channel 'list:switch' 上传递的事件信号触发(它只会在)的执行。SiblingDiv
**View2**.shrinkAndMore();
所以真正的代码流程是这样的:
一个无限循环……哎呀!
通过对我的代码进行一些修改,我能够使事情按我的方式工作:
AMD 模块 2 已修改
AMD 模块 3 改装
但是我很想了解无限循环行为(在事件信号广播期间创建的新对象也将由该信号触发)是否被认为是调解器模式方法中的“标准”?或者这只是插件部分的一个错误?
wso2 - wso2 esb 类中介
您好,我通过 Carbon Studio 创建了以下类调解器:
顺序如下:
> 问题是它总是打印文本“nothing”而不是打印 Message: "HelloWorld"...有什么建议吗?
validation - wso2 esb validate mediator 总是说请求无效
我正在使用 wso2 esb 4.0.3,但在使调解器工作时遇到了一些问题。
问题出在给定的模式上,即使我发送了正确的soap请求,验证调解器也会评估无效的请求,因此在失败时配置的序列总是被执行
我也通过SoapUI验证了soap请求的有效性,它说请求是有效的,但wso2认为它是无效的
有人可以建议上述配置有什么问题吗?
谢谢小号