复合模式-MVC

复合模式

结合至少两个设计模式,组成一个解决方案,解决一再发生的一般性问题。

MVC

MVC是一种威力强大的复合模式,内部有多个设计模式,因此如果你想了解MVC,应该先了解基本的设计模式。

M,model模型,模型持有所有的数据、状态和程序逻辑。

V,visual试图,用来呈现状态和数据,是和用户交互的界面。

C,control控制,取得用户的输入并告知模型如何作出对应的动作。

C层是用来解耦的,让V层和M层之间解耦,这样代码更有弹性而且容易扩展。比如你想复用视图来处理其他模型,如果C层代码和V层代码不分离,那么复用几乎是不可能的。

MVC包含的设计模式

策略模式,视图通过控制器对模型进行修改,视图是一个对象,可以被调整为使用不同的控制策略。

组合模式,界面中的每个显示组件不是组合节点就是叶节点。当控制器想要做某种更新时,只需告诉视图最顶层的组件即可,组合模式会处理组合节点或叶节点的更新。

观察模式,当模型发生改变时,需要立即反馈到视图中,此时可以把控制器或视图作为观察者,观测模型的动态变化。这样模型完全独立于视图和控制器,是一个松耦合的实现。

Model 2

web开发时的MVC模式又叫做Model 2。其内的经典的组合模式,策略模式,观察者模式都进行了一种变种,虽无其形但达其意。

M模型层,就是我们在controller,service,dao中写的逻辑,以及数据库中的数据等。。

V视图层,给用户的展示网页,比如jsp视图。

C控制层,即servlet,接受请求,解析并转发给指定的业务逻辑。

这种web的分层不止在代码层面上进行了解耦,而且给开发者的任务分责提供了界限,这样大家该编程的编程,该做网页的做网页,分工明确,责任清楚,也促使了前后端分离的产生。

总结

MVC,是一种应用很广泛的复合模式,将用户的交互界面和数据、逻辑进行松耦合,这种模式在遇到需要和用户交互的场景时都可以套用。是一种很棒的设计模式。

猜你喜欢

转载自blog.csdn.net/dshf_1/article/details/89489586
今日推荐