前面介绍了一些基础内容,涉及到了去耦的5大工具,本章开始讲介绍本书的重点:CleanArchitecture,CleanArchitecture通过我们之前介绍的设计模式和设计原则来设计出更好,更内聚,更clean的代码。
本文为系列文章的第六篇,前5篇请查看文末原文。
MVC和其的局限性mvc如今充斥在整个软件开发中,前端讲mvc,后端讲mvc,前端:Backbone.js、AngularJS、Ember.js…后端:RubyonRails、CodeIgniter、Laravel、Django…这么多的mvc,在初学的时候,很难分辨清楚到底mvc是什么,怎么每一个mvc看上去都不怎么一样?
查看维基百科上的定义,可以看到mvc中最重要的一点是:
ModelshouldinformViewaboutthechanges(observerpattern)
当model发生改变的时候,要主动通知view,这一项在server-sideframework中基本上不可能的(当然可以通过socket等手段),因此我们平时server-sideframework中声称的mvc都是不确切的,那平时我们使用的“mvc”是什么呢?
View传送指令到Controller
Controller完成业务逻辑后,要求Model改变状态
Model将新的数据发送到View,用户得到反馈
Model2MVCModel2isa复方驱虫斑鸠菊丸价格北京中科是公立医院吗