复合模式(Compound Pattern)就是一种由模式所构成的模式。最典型的例子就是MVC(Model-View-Controller)。
控制器把控制逻辑从视图中分离,让模型和视图之间解耦。通过保持控制器和视图之间松耦合,设计就更有弹性而且容易扩展,足以容纳以后的改变。
在Web开发中,大家非常熟悉的MVC变型被称为“Model 2”,其使用了Servlet和JSP技术的结合,来达到MVC的分离效果。相信你一定听说过大名鼎鼎的SpringMVC,以及SSM或SSH架构。
MVC是复合模式,结合了观察者模式、策略模式和组合模式。模型使用观察者模式,以便观察者更新,同时保持两者之间解耦。控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮。
适配器模式用来将新的模型适配成已有的视图和控制器。
最后本章有一个比较大一点的GUI程序,其可以加深对于MVC的理解。在文章顶部有相关代码地址。