在读书前,我一度将“架构”和“框架”两个概念混淆,现在进本弄清楚了,记录下来,将来提醒自己。
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。
架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,这就是是我把架构和框架混为一谈的原因。也就是说,框架是客观存在的,不受任何外力所左右的,实实在在的,就比如SSM框架,它就是那样的,你用的时候去套就行了;架构是人因某个具体项目设计出来的,具有主观性,今天可能是这样设计的,明天可能就又有新的优化方案,主要在与设计者,因此架构并不是千篇一律的,或者说两个看似一样的项目,但采用的架构却截然不同,这就是两者的区别。