架构模式
---

> 模式就是最好的架构。

####架构的产生

在我开始接触架构设计的时候，我买了几本书然后我就开始学习了。我发现在这些书中都出现了一些相似的东西，如基本的分层设计、Pipe and Filters模式、MVC模式。然后，我开始意料到这些模式本身就是最好的架构。

MVC模式本身也是接于分层而设计的，如下图是Spring MVC的请求处理过程：

![Spring MVC](chapters/chapter8/spring-mvc.png)

而这个框架只是框架本身的架构，这一类也是我们预先设计好的框架。

在框架之上，我们会有自己本身的业务所带来的模式。如下图是我的网上搜罗到的一个简单的发送邮件的架构：

![发送邮件中的Pipe and Filters模式](chapters/chapter8/basic-paf.png)

这样的模式则是由业务发展的过程中演进出来的。

###预设计式架构

在我们日常使用的框架多数是预先设计的构架，因为这个架构本身的目标是明确的。系统会围绕一定的架构去构建，并且在这个过程中架构会帮助我们更好地理解系统。如下图所示的是Emacs的架构：

![Emcas架构](chapters/chapter8/emacs-architecture.png)

它采用的是交互式应用程序员应用广泛的模型-视图-控制器模式。

###演进式架构

演进式架构则是我们日常工作的业务代码库演进出来的。由于业务本身在不断发展，我们不断地演进系统的架构。

