什么是MVC
今天看了一篇名为深入理解MVC的文章,文章中总结和说明了什么是 MVC,也谈了他对于 MVC 的认识和理解。是一篇很好的文章,读完后让我对 MVC 有了一种新的认识。
MVC 即 Model、View、Controller 即模型、视图、控制器。
在 web 项目中 View 层是界面,Controller 层是业务逻辑,Model 层是数据库访问。这是我之前对于 MVC 的大致的了解,还有一个一提到 MVC 就会想到的名词就是 SpringMVC,毕竟天天在用它不是吗?
MVC 要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。
的确,在没有这种体系架构之前(虽然我没有经历过),我想代码界应该也是处于一种混沌的状态吧。或许现在任然有非常多的代码体系也处于这种混乱之中。处于焦油坑之中的代码数不胜数,而如何走出焦油坑是一种难以回答,或者是无法回答的问题。在质量、成本和周期的维度下,一个项目的走向或许谁都无法掌握,随着业务的增多,项目的扩大,交付时间的临近。原本有着很好体系结构的代码也会随之混沌。我们竭力把一切活动技术化、条理化,而结果只是加快了能量转化和熵的过程。如何有效的解决这一问题始终是我追寻的答案。
控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。
薄的 Controller 层往往可以让代码的复用性更强,可读性也会相应提升,前提是类名要有可读性。代码是写给人看的,其次才是机器。
如果仅仅是复用代码,并不是我们使用继承的理由。
其实这里我并不是很能理解为什么一定要对继承那么苛刻,有的时候多一些冗余会少很多的麻烦。
组成MVC的三个模式分别是组合模式、策咯模式、观察者模式,MVC在软件开发中发挥的威力,最终离不开这三个模式的默契配合。
说起 Java 漫画中总是有这么一副是用来嘲笑那复杂的设计模式的。GoF 总结和归纳的 23 种设计模式在 Java 框架中被广泛应用,使得框架异常的好用。如果不是有那么多开源的框架和技术人员在背后默默的支持着 Java 这门语言,它不会像现在这样流行。但是很有意思的是在这门如此注重模式的语言中,项目中却很少使用。这是说明我还是一个初级程序员的最好证明。
本文由个人 hexo 博客 co2fe.com 迁移
date: 2018-04-24 21:33:34