canxden
2018-07-26 18:34:54 +08:00
因为面试的原因, 看过很多这方面的东西, 各种设计模式.
其实要说清楚这个问题, 思考过程应该是:
Q1:为什么会产生设计模式, 或者说设计模式的意义是什么
A1: 统一编程方式, <这是一种对人类主观不足的补充>, 程序日渐复杂 (需求一直在加多和变化), 我不能一行看完全部代码. 如何规范我的代码哪里写什么, 或者说代码怎么写容易被他人快速理解和找到, 从而快速进行需求扩张. 遂出现统一的设计模式. 有一点要反思的就是, 这不一定最好, 但是一定能解决问题.
Q2:为什么设计模式会具象到使用 MVC 模式, 或者说 MVC 到底是干嘛的
A2:
我觉得这个问题主要在"解决问题"这个需求上. 人们的需求日益增加, 产品需要快速迭代, 但是我们不能一个版本就重写一份.
如何做到快速迭代就是 MVC 的优势, 分离[数据 视图 逻辑]三部分内容, 先分化, 再细化. 找出抽象内容. 将改变制定到具体内容上. 就不赘述面向对象的三大原则了.
不同语言下的 MVC 都会进行各种改变, 但是核心还是为了不断更变的需求服务.
但是实际上并没有规范 MVC 中到底应该拥有什么, 有人贪图方便就在 V 中写网络请求(不推荐这样), V 给自己提供数据. 但是这也是解决了问题. 所以 MVC 不一定最好, 但是一定能解决问题.
其实我觉得没必要纠结 MVC 是什么, 它早已不是最好, 只是一个时代的产物, 他能解决很多问题, 但是现在已经有许多更好的解决方式了. 所以不必要纠结和规范 MVC. 因为核心需求一直在改变的话, 设计模式实际上就一直在变.