开篇
鼓捣了20多天的架构设计,啥收获也没有感受到!可能想一下子把路走宽,有点异想天开,工作还得继续,随选MVC车道重新探路!
MVC架构
老早前就知道MVC了吧,但是也就仅仅是“知道”,听说了佩奇,不知道“佩奇是啥”!
一个不错的参考1,不太喜欢这个参考了,记得尽快提取后干掉…
Smalltalk MVC
为啥会有这么一段呢,我连Smalltalk是啥也 不知道。最近在回头看GOF《设计模式:可复用面向对象软件的基础》,Pag3讲的是透过MVC来看设计模式,又读一遍受益颇深。我的受益是“反向的”,基于对设计模式的理解,感觉对MVC架构风格的理解更深了些。
小插曲: Smalltalk被公认为历史上第二个(第一个simula)面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns(设计模式), Extreme Programming(XP极限编程)和Refactoring(重构)等。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:ObjC,Actor, Java 和Ruby等。这么好的东西去哪里啦? 好了,回到正题:
在Smalltalk-80中MVC被用来构建用户界面。透过MVC(架构)来看设计模式将帮助我们理解“模式”这一术语的含义。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。不使用MVC,用户界面设计往往将这些对象混在一起,而MVC则将他们分离以提升灵活性和复用性。
- MVC通过建立一个“订阅/通知”协议来分离视图和模型。一旦模型的数据发生变化,模型将通知有关的视图,每个视图都应得到刷新自己的机会。这种方法可以让你为一个模型提供不同的多个视图表现形式,也能为一个模型创建新的视图而无需重写模型。这个设计可以用于解决更一般的问题:将对象分离,使得一个对象的改变能够影响到一些对象,而这个对象并不需要知道那些被影响对象的细节。(Observer模式)
- MVC的另一个特征是视图可以嵌套。…可以将组合视图与其构件平等对待的设计,也适用于更一般的问题:将一些对象化为一组,并将该组对象当做一个对象来使用。(Composite模式)
- MVC允许你在不改变视图外观的情况下改变视图对用户输入的响应方式。例如,你可能希望改变视图对键盘的响应方式…MVC将响应机制封装在Controller对象中。存在着一个Controller的类层次结构,使得可以方便的对原有Controller做适当改变而创建新的Controller。要实现不同的响应策略只要用不同种类的Controller实例替换即可。View-Controller关系是Strategy模式的一个例子。
- MVC还使用了其他的设计模式。但是主要关系还是由观察者、组合、策略三个设计模式给出的。
Spring MVC
https://www.cnblogs.com/justmaomao/p/6739065.html
项视图
在<<c++ GUI Qt4 编程 >> 第10章,是这么描述的:
Qt项视图系列讲解1234