Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于基于mvc的分布式系统,我应该使用哪种设计模式或思想_Java_Android_Model View Controller_Distributed - Fatal编程技术网

Java 对于基于mvc的分布式系统,我应该使用哪种设计模式或思想

Java 对于基于mvc的分布式系统,我应该使用哪种设计模式或思想,java,android,model-view-controller,distributed,Java,Android,Model View Controller,Distributed,首先,我想说明一下我想完成的基本想法 我正在按照分层模型视图控制器设计来设计一个系统。我基本上有一个服务器,我想使用平板电脑作为视图/显示器。现在,因为我想通过序列化向平板电脑发送数据和从平板电脑发送数据,所以我不知道在哪里播放这些平板电脑的视图控制器类 理想情况下,当您启动平板电脑时,您可以选择希望平板电脑显示哪一个视图(1到任意值),但视图不能实例化它自己的控制器,我不认为 所以我只是不知道在哪里有一个视图控制器,它在技术上创建了所说的视图,以及如何允许它与所说的平板电脑通信。(这将在jav

首先,我想说明一下我想完成的基本想法

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

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


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

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

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


你可能更愿意问自己,你是想要一个富客户机还是瘦客户机。富客户端具有更独立的逻辑,可以缓存数据。。。;而瘦客户机只显示数据并将执行的每个操作转发给服务器。

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

由于众所周知的三层体系结构(表示层-应用层-数据层),这两种体系结构很容易与MVC模式进行类比(视图=表示层/控制器=应用层/模型=数据层),因此这两种体系结构通常是混合的,但却错误


关于您的问题,请参见zahorak关于您必须选择瘦/胖客户端的回复

是的,这就把事情弄清楚了,谢谢。目前,我正在使用单独的框架“模拟”平板电脑窗口,因此这对我来说混淆了正确的结构。假设我想要一个只显示数据和发送动作执行内容的瘦客户机,我会在服务器上使用一个控制器类来处理所有传入的平板电脑,还是在每个平板电脑连接时生成一个新的控制器,或者为平板电脑当前显示的任何特定屏幕使用一个完全独立的控制器?还是有一个控制器为每个平板电脑创建一个单独的DAO?控制器封装逻辑。因此,您希望为系统的不同部分使用不同的控制器,但每个用户/客户端都将访问所有这些控制器。但是,您可能不会有相同的实例,只有相同的类型(有关实例与对象的更多信息)哈哈,当然可以。我相信你帮我想出了现在该做什么的主意,谢谢!我很感激你澄清这一点。我确实有一个想法,一个是基于另一个的,但是现在你已经澄清了整个“MVC被用于小事情”并且本质上是单一平台特定的,它现在变得更有意义了,所以谢谢你。