关于“架构”与“框架”、“模式”与“模型”的思考
目录
- 概念
- 架构
- 模型
- 框架
- 设计模式
正文
回到顶部
概念
架构
软件结构上具体的表现形式,其抽象的对应概念是——模型!
所以你听说过各个公司的组织架构,但其架构不可能都相同。
我们常常听说“架构师”,但很少有“模型师”——真正的模型师,就是Gof,是总结这些模式的人。而我们可以努力成为一个“架构师”,为不同的公司从头搭建一个不同的“架构”(当然这个过程里少不了套用各个“模型”)。
模型
抽象的一般化的软件结构——是根据长期的实践经验总结出的一套“软件模块化布局”。不同的布局存在着不同的应用场景,但其通过巧妙地设计思路可以灵活的实现某些需求场景。
所谓复用一种模型,就是在相同的应用场景下,按照模型,搭建一个结构相同的新产品。
框架
一种可以复用的,已经部分实现的半成品,用于解决特定的问题——例如GUI框架,网络通信框架等等。
框架中往往已经参考了某些模型,并实现了各种设计模式。它屏蔽了这些技巧,当然也就不需要你再重新搭建架构(毕竟你们要做的是同样一个场景下的事情)。所以很多人误认为框架就是架构。但架构只是一种设计思路,他能指导你开发,却不能直接帮你写代码——框架则不同,它实现了几乎所有通用的代码,而这些代码中的类和对象,你都可以拿来复用——在已有的架构中,用着 封装好的功能库,留给你的就只剩下了业务逻辑控制。
设计模式
设计模式研究的是对象与对象之间的关系。一般来说,对象是组成程序的,所以设计模式往往用在程序设计(编码)过程中。
所谓模式,实际上更应该说是一种可以复用的技巧,它不一定像“模型”一样体现着模块之间的整体关系,而是“模型”的超集,可以用在设计领域的方方面面。
但对象之间的关系也可以套用在更广的维度中——模块间的结构与关联、进程间的交互,都可以复用设计模式中的某些思路——尤其是结构模式模式和行为模式中的某些设计理念,经久不衰,历久弥香……
赞 (0)