【问题标题】:Which design pattern or idea do I use for a distributed system based on mvc对于基于 mvc 的分布式系统,我使用哪种设计模式或想法
【发布时间】:2014-03-26 14:47:21
【问题描述】:

首先,我想先说明我想要完成的基本想法。

我正在按照分层模型视图控制器设计来设计系统。我基本上有一台服务器,我想使用平板电脑作为视图/显示器。现在因为我想通过序列化向平板电脑发送数据和从平板电脑发送数据,所以我不知道在哪里播放这些平板电脑的视图控制器类。

理想情况下,当您启动平板电脑时,您可以选择希望平板电脑显示哪个视图(从 1 到其他),但视图无法实例化它自己的控制器,我不认为.

所以我只是不知道在哪里拥有从技术上创建所述视图的视图控制器以及如何允许它与所述平板电脑进行通信。 (这将在 java/android 中完成)

【问题讨论】:

    标签: java android model-view-controller distributed


    【解决方案1】:

    MVC 模式适用于一台机器。因此,您可以在平板电脑上使用 MVC 模式。这里的控制器是一种胶水代码,它实例化视图并创建模型(DAO - 数据访问对象)以从服务器获取数据。

    这完全独立于您将在服务器上使用的内容。你可以说在服务器上你也想拥有类似 MVC 的东西——在这种情况下,控制器处理 REST、SOAP、...——请求并实例化一个 DAO,它将从文件、数据库、.... .. 之后的视图可以看作是一个序列化器,它从获取的数据中创建 XML 或 JSON 文档。

    您可能更愿意问自己,您想拥有富客户端还是瘦客户端。 Rich-Clients 有更多独立的逻辑,也许可以缓存数据,...;而瘦客户端只显示数据并将每个执行的操作转发到服务器。

    【讨论】:

    • 是的,这一切都清楚了,谢谢。目前我正在通过使用单独的框架来“模拟”平板电脑窗口,所以这对我来说是混淆了正确的结构。假设我想要一个瘦客户端,它只显示数据并发送操作执行的东西,我是否会在服务器上有一个控制器类来处理所有传入的平板电脑,或者在每个平板电脑连接时生成一个新的控制器,或者有一个完全独立的控制器平板电脑当前正在显示的任何特定屏幕的控制器?还是有一个控制器为每个平板电脑创建单独的 DAO?
    • 控制器封装逻辑。因此,您希望为系统的不同部分使用不同的控制器,但每个用户/客户端都将访问所有这些控制器。但是,您可能不会有相同的实例,只有相同的类型(What is the difference between an Instance and an Object? 了解有关 Instances VS 对象的更多信息)
    • 哈哈,当然。我相信您帮助我了解了现在该做什么,谢谢!
    【解决方案2】:

    实际上,我认为您将两个不同的概念混合在一起,它们很好地结合在一起,但仍然是不同的。 MVC pattern 是一种用于实现用户界面的模式,仅在非常小的项目中用作架构模式。另一方面,layered architecture 可用于服务器端来实现更复杂的应用程序。

    由于众所周知的 3 层架构(表示层 - 应用层 - 数据层),这两者经常混合使用,在该架构上很容易类比 MVC 模式(视图 = 表示层 / 控制器 = 应用层 / 模型 = 数据层)然而错误

    关于您的问题,请具体参阅 zahorak 关于您必须做出的瘦/胖客户端选择的回复。

    【讨论】:

    • 感谢您澄清这一点。我确实有一个想法是基于另一个,但是现在您已经阐明了整个“MVC 用于小事情”并且基本上是特定于单个平台的,现在它变得更有意义了,所以谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多