一、架构模式
除了通常应用于对象和类之间交互的典型设计模式和原则之外,还有一些从总体上指导架构的原则或模式。《面向模式的软件体系结构》中将它们定义为架构模式,而不是设计模式。本文将介绍其中两种模式:层与MVC。
但将它们成为“模式”会让某些人的理解受到一定限制,他们会把它们看做是死规定而不是指导。其实,将它们看做整体概念、范型或分类原则可能更有效。理解和记住它们要比严格地应用它们重要——eg. 引入层或者MVC在非常简单的Web应用中显然没有必要。
二、分层设计
“分层”的理念是构建软件时普遍和自然的思考方式。函数、方法或者对象有啄序(pecking order)之分:函数A“啄”(调用)函数B的次数比函数B“啄”函数A的次数多,因此函数B在啄序中的等级低于函数A。如果你的代码中这种情况很多,可以将代码整理成层,对它们进行分类。就像所有这些组件都漂浮在周围一样,你需要抓住它们,将它们放到不同的架子上,方便组织和记忆。
在精确分层的架构中,每层上的对象都只能方位低于它所在层上的对象。网络协议就是这种方式。
- “三层”模式
分层设计有些像等级制企业或者军事机构,给系统中的每个组件一个“等级”即为啄序,这样可以吩咐较低级别的组件要做什么。
典型的三层架构如下:
|
|
---|---|
|
|