关于“架构”与“框架”、“模式”与“模型”的思考

概念

架构

软件结构上具体的表现形式,其抽象的对应概念是——模型!

所以你听说过各个公司的组织架构,但其架构不可能都相同。
我们常常听说“架构师”,但很少有“模型师”——真正的模型师,就是Gof,是总结这些模式的人。而我们可以努力成为一个“架构师”,为不同的公司从头搭建一个不同的“架构”(当然这个过程里少不了套用各个“模型”)。

模型

抽象的一般化的软件结构——是根据长期的实践经验总结出的一套“软件模块化布局”。不同的布局存在着不同的应用场景,但其通过巧妙地设计思路可以灵活的实现某些需求场景。

所谓复用一种模型,就是在相同的应用场景下,按照模型,搭建一个结构相同的新产品。

框架

一种可以复用的,已经部分实现的半成品,用于解决特定的问题——例如GUI框架,网络通信框架等等。

框架中往往已经参考了某些模型,并实现了各种设计模式。它屏蔽了这些技巧,当然也就不需要你再重新搭建架构(毕竟你们要做的是同样一个场景下的事情)。所以很多人误认为框架就是架构。但架构只是一种设计思路,他能指导你开发,却不能直接帮你写代码——框架则不同,它实现了几乎所有通用的代码,而这些代码中的类和对象,你都可以拿来复用——在已有的架构中,用着 封装好的功能库,留给你的就只剩下了业务逻辑控制。

设计模式

设计模式研究的是对象与对象之间的关系。一般来说,对象是组成程序的,所以设计模式往往用在程序设计(编码)过程中。

所谓模式,实际上更应该说是一种可以复用的技巧,它不一定像“模型”一样体现着模块之间的整体关系,而是“模型”的超集,可以用在设计领域的方方面面。

但对象之间的关系也可以套用在更广的维度中——模块间的结构与关联、进程间的交互,都可以复用设计模式中的某些思路——尤其是结构模式模式和行为模式中的某些设计理念,经久不衰,历久弥香……

原文地址:https://www.cnblogs.com/brt3/p/9828254.html