hes*_*rus 5 model-view-controller client design-patterns
我正在尝试为我正在开发的应用程序选择一种设计模式。该应用程序主要基于客户端-服务器架构,其中客户端基本上向服务器读取和写入数据;然而,它不是 Web 应用程序,客户端必须安装可执行的软件,然后与 GUI 交互,以便通过 Internet 协议与服务器(存在于不同的机器上)进行通信。
由于该应用程序基于与 GUI 的大量交互,我正在考虑使用 MVC 设计模式,但问题是我无法决定哪个部分应该存在于服务器端,哪些部分应该存在于客户端。换句话说,是否可以在客户端拥有视图(即边界 GUI 类和对象)和控制器,而将模型(即实体对象)留在服务器端?这是应用 MVC 模式的可行或有效方法吗?我在这里朝着正确的方向前进吗?这甚至可能吗?我的意思是那些边界和控制类可以在没有或访问同一台机器或进程上的模型类的情况下运行和执行吗?
我应该在客户端拥有整个事物(模型、视图和控制器类),然后通过协议与服务器数据库进行通信吗?
欢迎任何建议或意见。
您关于使用 MVC 的想法是非常正确的。这将帮助您解耦事物并让您更好地控制类。
我建议将视图保留在客户端。我会将控制器和模型类保留在服务器上。控制器是比较棘手的组件。人们可能很容易想将其保留在客户端,将其放在服务器上的原因是:与 DAO 交互、与模型类交互、错误处理和控制流(屏幕/操作)。
客户端的控制器可能被证明很容易开发,但最终您需要将更改(如按钮按下、单击等)传递到服务器。此外,客户端的控制器会慢慢地开始将您推向客户端越来越多的类。