MVC和领域模型
2019-02-26 本文已影响56人
neo_ng
outline
- MVC
- 领域模型
MVC
Model封装了你的应用数据、应用流程和业务逻辑。-Model被称为领域模型
View从Model获取数据并格式化数据以进行显示。
Controller控制程序流程,接收输入,并把它们传递给Model和View。
微信图片_20190226104045.jpg
controller: 单例
Spring中默认单例:
领域模型:
image实体类的分类:
1.展示层(VO-View/Value Object,视图对/业务对象):
2.服务层(DTO-Data Transfer Object,数据传输对象)
3.领域层(DO-Domain Object,领域对象)
4.持久层(PO-Persisent Object,持久对象)
各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。
领域模型中实体类的含义及作用
实体类 | 含义及作用 |
---|---|
VO | 代表展示层需要显示的数据,每一个属性都一一对应当前业务逻辑所需要的数据的名称。 |
DTO | 代表服务层需要接收的数据和返回的数据 |
DO | 从现实世界中抽象出来的有形或无形的业务实体 |
PO | 物理数据的对象表示。PO的属性是跟数据库表的字段一一对应的。PO对象需要实现序列化接口由一组属性和属性的get和set方法组成 |
领域模型中实体类的命名方式:
实体类 | 命名方式 | 生命周期 |
---|---|---|
VO | 以相应字符串结尾,如*VO.Java | |
DTO | 与他的用途有关,如写成*Query.java--表示一个查询条件 | |
DO | ||
PO | 只能存活在一个数据库连接中,断开连接即被销毁 |
DO和PO在绝大部分情况下是一一对应的 DO具有业务方法
业务分层:
1.视图层(VIEW+ACTION)
2.服务层(SERVICE)
3.持久层(DAO-data access object,数据库访问层):具体到对于某个表、某个实体的增删改查
dao: 每个DAO都要包含一个不同的Connection对象实例,
请求在不同的线程中处理
每个线程走的逻辑相同,但并没有用到共享的数据,所以可以用单例模式~
线程拥有自己的栈空间--方法
单实例多线程
BO:business object 业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。