面向对象编程;面向切面编程;面向过程编程;
MVC
软件分层开发可以解耦合,减少关联关系,明确分工。
项目遵循mvc五层规范,数据访问层使用的是dao模式,web层(ui)使用的是mvc模式,mvc模型和应用分层不冲突,mvc在ui层。
客户->view->controller->model->controller->view,还有直接请求controller的,
项目越来越大,最高宗旨就是解耦合;用户越来越多,最高宗旨就是高并发;数据越来越多,最高宗旨就是大数据;需求越来越复杂,最高宗旨就是AI;因此,分布式服务器很重要;
分层开发步骤
1.层次划分,包 -- 层;2.实体类建模,vo包下的,与db表对应。实体类自动生成表(正向生成),表自动生成实体类(逆向生成,较科学),但这均有时不准确;3.dao;4.service;5.ui
实际合作开发中,根据详细设计文档,文档中标识定义出了接口、方法,不一定必须按dao -> service -> ui顺序开发。管理系统事实上是对象传递的过程,UI层提供的data足够多 -> 在控制层封装成pojo,否则在业务层封装成对象。
实体类 -> dao -> 元组;元组->dao->实体类;
应用层次
视图层(View)
Filter层
controller层(C)
model层(M):business/service/业务逻辑层、异常逻辑的定义、事务处理;每个非抽象实体类都实现一个单独的接口。用户添加好友,是好友表的insert,-> 是好友服务。dao层写好了封装好了 -> 写业务层就很顺手。
dao层(M):CURD 只做db操作,不考虑业务逻辑;每张表的db操作都实现一个单独的接口。原本以为增删改查操作弄成一个接口,其它db操作弄成一个接口,-> 这不合理。相同db操作的表实现同一接口即可(dao层、业务层都是这样)。多个内存集合合并成一个集合 -> dao层不做这种事。
持久化层:persistence 和dao层合在一起 data持久化
数据库
注意
1.不允许跨层依赖,dao层依赖db,每一层的改动只影响上一层
2.实体类的作用:data在各层的传递。实体类有很多种,如vo、pojo、po、dto、entity、domain