【问题标题】:Coupling & Design Patterns in Web vs Desktop ApplicationsWeb 与桌面应用程序中的耦合和设计模式
【发布时间】:2014-06-13 04:05:32
【问题描述】:

我主要是一名桌面应用程序开发人员,但我最近一直在做一些网页设计项目,并意识到我在文件之间切换的次数要多得多,而完成的工作要少得多。

问题:

在开发桌面应用程序时,我最喜欢的部分是确定要使用的最佳设计模式和数据结构,以最大限度地减少耦合并最大化内聚。然而,对于网页设计,我似乎在结构方面做得很好。大量所需的脚本/编程语言与此有很大关系。尽管我理解他们,但有时让他们完美地合作会让人筋疲力尽。在一个项目中,您可能会使用 HTML、CSS、JavaScript、PHP、SQL、XML、C#/VB 等。然后,每个项目都有任意数量的文件,并且对一个项目进行一次更改可能需要更改许多其他文件。在一个抽象的世界里,我认为整个过程会更加简洁和统一。

问题:

我通常使用 MVC 设计,这样我就可以设计视图,将所有触发器链接到控制器,并在控制器/模型上工作,而无需再次触摸视图。有没有办法在网页设计中模拟这一点?从桌面应用程序移植到 Web 应用程序的设计模式有多好?有没有办法减少耦合感?

【问题讨论】:

    标签: web structure desktop-application decoupling


    【解决方案1】:

    我通常使用 MVC 设计,这样我就可以设计视图,将所有触发器链接到控制器,并在控制器/模型上工作,而无需再次触摸视图。有没有办法在网页设计中模拟这种情况?

    使用事件属性来模拟这个:

    <div class="view" onclick="controller('click')" onblur="controller('blur')" onload="controller('load')" onunload="controller('unload')" onerror="controller('error')">
    </div>
    

    有没有办法减少耦合感?

    每个级别使用不同的语言,例如:

    • XML 用于模型,XSLT 用于视图,CSS 用于控制器
    • JSON 用于模型,JSON.parse 用于视图,AJAX 用于控制器
    • CSV 用于模型,FTP 用于视图,套接字用于控制器
    • 模型的日志文件,视图的 SVG,控制器的 Perl
    • SQLite 用于模型,CSV 用于视图,电子表格用于控制器
    • hTurtle 用于模型,GRDDL 用于视图,jQuery 用于控制器
    • 模型的网关,视图的 PubSub,控制器的代理
    • 模型的元数据,视图的元对象,控制器的元字符
    • 模型字典、视图哈希数组树、控制器调度表
    • 模型缓存、视图模板、控制器过滤器
    • 模型的 URL,视图的 URITemplates,控制器的 URITemplate 解析器
    • 模型的记录集,视图的 Heredoc,控制器的高阶函数
    • indexedDB 用于模型,HTML 用于视图,JSON.stringify 用于控制器
    • HTML 用于模型,CSS 用于视图,CSSOM 用于控制器
    • 数据:模型的 URI,视图的 HTML,控制器的 CSS
    • XML 用于模型,SVG 用于视图,SMIL 动画用于控制器
    • 模型的 URL、视图的请求正文、控制器的请求标头

    参考文献

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多