[小明也得懂架构]1.架构初探

一.写在前面

  从很久很久以前就听说一个好的程序员是可以简单的写写构架然后就可以坐着喝茶看别的码农加班加点儿通宵瞎忙了,小明对能成为这种级别的程序员是相当的向往啊!有道是不积跬步无以至千里,想做架构师也得按照基本法不是,所以先从了解架构是什么开始吧.

二.前辈大牛写的

  牛顿这种"神棍"都得站在巨人的肩膀上呢是吧,那么小明也得先看看前辈们怎么说啊.网上找了下,发现阮一峰大牛前辈的这篇博客真是浅显易懂啊,必须得粘过来看一眼啊:阮一峰:MVC,MVP 和 MVVM 的图示.接下来看看阮大神都说了啥.

复杂的软件必须有清晰合理的架构,否则无法开发和维护。
MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。

1.MVC

  阮前辈上来就简单明了的解释了为啥用框架,框架师为什么就是叼.然后阮大神讲了啥叫MVC.

MVC模式的意思是,软件可以分成三个部分。
    • 视图(View):用户界面。
    • 控制器(Controller):业务逻辑
    • 模型(Model):数据保存

 

  各部分之间的通信方式如下。

  

    1. View 传送指令到 Controller
    2. Controller 完成业务逻辑后,要求 Model 改变状态
    3. Model 将新的数据发送到 View,用户得到反馈

所有通信都是单向的。

2.MVP  

  之后还有MVC的一些应用实例,但是这个对我目前的用处不大,但对MVC有个大概的了解了.总的来讲,M与V是一定要有交互的,这个在我目前正在写的项目中不能应用,有些过时了.

  然后呢,大神讲到了MVP,这个MVP我一看就熟悉了,这个刚好是最近可能用到的,有点懂,所以这个重点了解下

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。

  

1. 各部分之间的通信,都是双向的。
2. View 与 Model 不发生联系,都通过 Presenter 传递。
3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

  我现在做的主要是这种模式,UI单独一个脚本,处理各种UI操作,所有的只涉及到UI逻辑的就在UI里自己变换,涉及到数据和逻辑处理的,放到响应的Manager类中,然后需要数据的,通过相应的Controller在服务器获得响应.从上到下分别是:V-P-M,所有上层对下层的调用都是直接调用,所有下层对上层的调用都是通过回调函数.所以我还不是很清楚我现在的这种用法是MVP还是接下来要说到的MVVM.

3.MVVM

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

  

唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。
(完)

  如同大神所说,采用了双向绑定,但是双向绑定怎么绑定的我还不知道,那么就等后面再说.

三.结语

  这个MCV的结构小明是一直想要了解啊,但是一直没搞明白,但是最近代码写的多了就豁然开朗了,所以说项目经验很重要啊,当然,项目得有个牛人才行,不然也学不到.

原文地址:https://www.cnblogs.com/WongSiuming/p/4988676.html