好的,我是新手,我一直在尝试用Javascript / jQuery学习MVC模式和发布/订阅模式,但我相信我还没有完全掌握这个概念。
因为我一直在做这件事,所以我谦卑地来这里询问关于我试图按照这些模式进行的小型教育活动的意见
http://jsfiddle.net/Couto/R62V8/
好的,这个练习主要是一个登录表单,其中的值保存在localStorage中,同样它纯粹是教育性的,我现在无论如何都不安全,不应该在生产中使用。
请您告诉我您对所使用的模式的看法,我是否未能正确使用模式?如果需要请伤害我,我只想学习,但我不确定我是否正确行事。
答案 0 :(得分:2)
jQuery的事件委托系统本身就是pub / sub的一种形式。事实上,请查看http://bugs.jquery.com/ticket/7547。你会看到它使用事件系统,实际上只改变命名方案并在“全局”环境中工作。
我没有反对pub / sub,但觉得你在某些情况下添加了一个不需要存在的图层。在事件委托发生后立即触发正确的功能而不是触发酒吧真的更糟糕?如果您删除订阅和发布,您将使用几乎相同的代码,而不会增加“复杂性”。
在其他情况下,发布/订阅很有意义。您的display / hash和set / login非常有意义,因为它们不是其他代码可以订阅/绑定的传统事件的一部分。
有人可以说,通过在任何地方使用pub / sub,包括在事件委托中,你将抽象出你对外部代码的依赖,不必编写自己的事件代理,这消除了他们对要绑定的元素的担心代表来。如果您正在编写大型复杂应用程序,请继续将其抽象到该级别。如果您没有计划编写大型应用程序,那么YAGNI可能适用于此处的好处。