代码组织:Model、View、Controller、Logic、Service

转自:https://cloud.tencent.com/developer/news/360919

MVC是Model模型、View视图、Controller控制器的缩写。其目的是为了良好的代码组织。

Model属于数据层,对数据库做增删改查。

View为视图层。前后端分离时,View层直接被抽出去给前端了。该层在PHP中是模板引擎,或者把该层给JS框架,让PHP做接口返回数据,交给客户端渲染。渲染本质是字符串拼接,将数据渲染进一些固定格式的html代码中形成最终的html展示在用户页面上。拼接字符串会引起性能的消耗。客户端渲染,如Angular、React、Vue等,在首次渲染时,大多是将原html中的数据标记(如 {{ text }} )替换。

Controller为控制器层。它处理用户与服务器的交互,用户输入URL,经过框架启动、路由分配,到控制器层。控制器不负责数据的获取,保证了数据操作的单一路口。

Logic为逻辑层,处理业务逻辑。可将常用的可复用的业务逻辑抽象成一个Logic,Controller可以直接调用Logic。对于简单的业务,可以直接调用Model;如果有复用必要,整理到Logic中。

Service为服务层,为其他层提供服务。

举例。在ThinkPHP中,可以将模块内的Service和Model设置为同级目录,Service的使用方式和Model相同,只是Model主要实现数据的CURD方法,而Service主要配合Model中定义的CURD方法实现业务逻辑,最后Service和Model中的方法还是需要在Controller中调用。

posted @   夏秋初  阅读(1426)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示