代码分层设计:从MVC到四层架构
创作时间:
作者:
@小白创作中心
代码分层设计:从MVC到四层架构
引用
1
来源
1.
https://tool.lu/vi_VN/article/1qQ/preview
在软件开发中,良好的代码分层设计可以使代码的耦合性大大降低,易用性大大增强,为系统的微服务化和模块化拆分打下良好的基础。本文将详细介绍代码分层设计的基本概念、常用领域模型以及四层结构设计的具体实现。
在搭建一个项目之前,除了要进行架构和业务方面的设计和分析,往往还需要对代码的结构进行规范化设计。而分层思想,是应用系统最常见的一种架构模式。
我们会将系统进行横向切割,根据业务职责划分,这就是代码分层。这样划分的目的是规范软件系统的逻辑结构,以便于后期开发和维护。
一个软件系统就像一幅传世名画,在色彩和线条的表面之下,是精妙的几何结构。席里柯的《梅杜莎之筏》,画高五米,宽超七米,结构宏伟,气势磅礴,人体的塑造坚实而有力。尤其是它的画面上,由十几个人构成了两个金字塔式的几何图形。这些就是古典主义的特色。
上面是题外话,下面继续介绍代码分层。
我们熟悉的MVC(Model-View-Controller,分别是模型层、视图层、控制层)三层架构就是非常典型的分层架构模式。它将页面和业务逻辑分离,提高应用的可扩展性及可维护性。
MVC 三层架构只是概念层面的指导思想,如果想要让开发更规范、职责更明确、层次更清晰,需要下面更为细致的代码分层设计。
在介绍代码的分层之前,需要先了解代码分层结构中的领域模型。下面介绍几个常用的领域模型,其中参考了阿里巴巴编码规范的设计。
- DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
- DTO(Data Transfer Object):是远程调用对象,它是 RPC 服务提供的领域模型。需要注意的是,对于 DTO 一定要保证其序列化,实现 Serializable 接口,并显示提供 serialVersionUID,否则在反序列化时,如果 serialVersionUID 被修改,那么反序列化会失败。
- BO(Business Object):是业务逻辑层封装业务逻辑的对象,一般情况下,它是聚合了多个数据源的复合对象。
- VO(View Object):通常是请求处理层传输的对象,它通过 Spring 框架的转换后,往往是一个 JSON 对象。
在传统的MVC三层结构的基础之上,我们将业务系统设计为如下四层结构:前端层、请求处理层、业务逻辑层和持久层。
下面详细介绍一下各个分层的作用。
- 前端层:内容涵盖了从系统外发起的一切请求,还包括定时任务的触发配置,以及系统的监控和检测程序。
- 请求处理层:作用包括通过模板引擎(FreeMarker、Velocity等)的页面渲染、封装RESTful API的HTTP接口,以及暴露给前端调用的各种类型的接口。
- 业务逻辑层:职责是与数据持久层交互,包括对多个数据源的操作进行聚合,并且提供组合复用的能力。如果网站采用分布式架构,或者数据库需要分库,也包括对RPC服务的统一调用,为了减少不必要的重复调用RPC服务,RPC Service中对数据进行统一处理以后再返回给Manager,是一个节省RPC连接的做法。此外,它也是业务通用能力的处理层,其中还包括缓存方案、消息监听(MQ)、定时任务、参数校验、数据转换、异常处理等。
- 数据持久层:承载了数据存储和访问的能力。包括通过DAO访问数据库的能力和通过DAP访问外部数据接口的能力。
良好的代码分层设计可以使代码的耦合性大大降低,易用性大大增强,为系统的微服务化和模块化拆分打下良好的基础。
热门推荐
外貌在职场中的隐形优势:如何平衡外貌与能力?
中国各地外貌差异大揭秘:从黄河流域到珠江流域
高性能YXM1高速钢刀具设计优化指南
民宿隐私安全引担忧:如何避免遭遇偷拍?
即墨小李村布料市场:从两个摊位到百亿市场的蝶变
即墨小李村布料市场:百亿交易额背后的乡村振兴密码
失眠与多梦的中医解答:你未曾想过的自然疗法
年诊590万,温医大附一院用智慧医疗实现全周期健康管理
2024医药并购大年:政策红利释放,百亿级交易频现
6月多家生物科技企业IPO终止,行业融资持续低迷
扬州美食:舌尖上的古城生活
扬州美食打卡攻略:你吃了几样?
扬州炒饭:从宫廷御膳到世界餐桌,一道菜的千年传承
未来拉开孩子差距的不是智商和学历,而是4种能力,越早培养越好
如何获得职业资格证书?官方指南来了!
研究生数量超过本科生?比学历贬值更可怕的,是学历倒挂
中国古代年龄称谓的文化密码
揭秘辽宁锦州十大必吃美食小吃,你一定吃过其中几种!
朝阳楼、朱家花园、文庙:建水古城的文化地标
Z世代成数字阅读主力,网文出海带动全球阅读新风尚
斗罗大陆之燃魂战开播:灵河接棒新丽,市场表现不及预期
肾脏预警信号:血尿、泡沫尿、水肿,你中了吗?
慢性肾脏病患者的科学营养餐单
美国银行开户攻略:企业必知的九大步骤
双十一中筋面粉促销,附选购与使用完全指南
中筋面粉包子制作详解:从面团到蒸制的5个关键步骤
新一轮汽车补贴来了!首次购车最高可补4万元
失落情绪的正确打开方式
运动冥想双管齐下,调节情绪更有效
山东橙子教你自我疗愈失落情绪