浅谈 MVC 以及软件开发当中的 SoC

不论你是在学习何种语言,基本上都会遇到一个叫做 MVC 的概念,它是一个程序开发的模式,以“分离展现”作为核心,在层级框架当中有着巨大的影响力。

MVC 是一个简写,三个大写字母分别对应着 Model ViewController

在如今我们创建的应用软件当中,很多情况下又要使用 GUI 图形界面,又要使用 CLI 命令行界面,除此之外,有时候还要应对甚至两者同时使用的情况。

这时候我们就想,不同工作域的对象如果能够完全自治,比如说我们使用 CLI 功能,那就不去触碰 GUI 上的东西,这样就能大幅增加应用软件的稳定性和执行效率。所以对应的,数据的内容,就应该由专门的模块去执行它,这样,便能快速的兼容和支持不同的展示模式。而它们之间的沟通,就通过 Controller 进行。

这就是 MVC,它将程序分为三个分离的部分,有人将之称为三层,其实我觉得是不恰当的,管理数据的 Model 和负责展示的 View 不存在明显的层级关系,它们是并列的——一个管展示一个管数据罢了,中间来个负责二者沟通的角色,便是 Controller

Model ←→ Controller ←→ View

那么,这些和 SoC 有什么关系呢?这里的 SoC 不是封装芯片,而是

Separation of Concerns

我将之翻译为“责任分离”。其实就是说让不同的部分专心做不同的事情——让 GPU 就管图形计算。我这样解释你可能更容易理解它的含义。我这么说,你应该就知道 SoC 和 MVC 的关系了吧,后者就是前者理念延伸出来的一套模式。

发表评论

电子邮件地址不会被公开。 必填项已用*标注