java MVC架构

MVC架构图:

MVC架构图

我们以一个简单的注册功能为例子说明这个MVC架构的分工:

注册页面的MVC架构

View:

view是什么? 我们平时写的窗体都是view, 在这里窗体几乎什么东西都不做, 只是呈现一个界面. 比如, 当你点击按钮的时候, 相应按钮动作的代码并不会在窗体的代码中出现, 窗体只会调用控制器的相应代码, 也即是向控制器发出用户请求

控制器

负责接收用户界面的用户请求, 但是不完成核心业务, 而是根据请求, 将请求分发给对应的模型model, 由它来进行业务处理, 然后将处理的结果反馈给控制器, 控制器再根据结果, 对view进行一定的调整.

模型

模型负责核心的业务功能, 比如登陆过程中的数据库查询等等.

需要注意的是, 我们往往在Model跟数据库之间, 还夹着一个EntityContext的类, 这个类作为模型跟数据库之间的中介, 功能就是负责管理跟数据库之间的通信.

如果数据库比较小, 则可以将数据库中全部的信息一并放在EntityContext中的一个Map中, 以后所有的数据查询都变成了在内存中读写, 而不需要动用到硬盘存储.

MVC之外, 还有一些别的类:

Config类:
用于存放程序的各种配置信息, 比如数据文件的路径等等.

MD5类:
用于对密码进行MD5摘要, 以便提高系统的安全性.

MVC是怎么联系在一起的?

从V到C:

用户点击了V中的某个按钮,则这个按钮调用了C中的某个函数. 因此, 在V中什么都不用做 , 只需要调用C就可以.

V和C相互保留着对方的引用, 因此V和C都可以相互操纵.

V中的控件一般都是private的, 如果要获取V中控件的相关信息, 应该要通过V中专门的函数来, 不要直接向V中的控件要.

从C到M:
C中保留着M的一个引用, 因此C的业务处理就是直接调用M中的相关函数来实现的.

总而言之, C就是一个中介, 负责将V中的事件跟M中的方法联系起来, 也负责控制哪些Frame应该显示, 哪些应该隐藏.

怎么样把MVC架构搭建起来呢?

首先,我们需要有一个外部的测试类, 将这个测试类作为主类, 在这个测试类中, 首先要建立的是Model, 也就是生成Server实例, 然后再建立Controller, 也就是将刚刚生成的Server实例作为参数注入到控制器ClientContext中 最后, 才是生成界面, 然后将控制器注入到界面中, 将界面注入到控制器中.

此外, 通常情况下, Model都是先建立一个借口interface, 然后再将这个接口给实现了.

下面总结一下整个软件的流程

首先, 我这个软件有多少东西:

接口类:
ExamService接口, EntityService接口

实现类:
ExamServiceImp类, EntityServiceImp类, (M)
LoginInFrame类, MenuFrame类(V)
ClientContex类, EntityContext类(C)

辅助类:
MD5类, Property类

然后, 看看他们怎么联系在一起的:

每个程序都需要先实现Property类, 他决定了程序的诸多关键属性.

然后, 从底层向上实现

我们将Property类注入到EntityContext中, 让EntityContext将数据库映射到内存中

我们将EntityContext注入到EntityServiceImp中, 让他实现数据库的访问功能

将EntityServiceImp注入到控制器ClientContext中, 让他可以处理用户的数据请求.

将ClientContext和Frame相互注入, 让Context可以处理用户请求, 也可以控制视图.

尽量多点使用接口, 以便将界面跟内部实现完全的独立开来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值