您的位置:首页 > 运维架构 > 网站架构

架构和框架(Framework)的区别

2008-02-10 17:37 357 查看
人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构和框架(Framework)混为一谈 人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构和框架(Framework)混为一谈。本文阐述了它们的区别。算是对思辨成果的一个应用吧。
  一图胜千言,图7切中肯綮地点出了架构和框架的区别。一句话,框架是软件,架构不是软件。

  




           图7 架构和框架的区别

  框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。

  软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧。

  理解了本图,我们就很容易理解Frank Buschmann等人在《面向模式的软件体系结构(第一卷)》中为框架所下的定义了,其中也提到了框架和架构的关系:

  框架是一个可实例化的、部分完成的软件系统或子系统,它为一组系统或子系统定义了架构,并提供了构造系统的基本构造块,还为实现特定功能定义了可调整点。在面向对象环境中,框架由抽象类和具体类组成。(A framework is a partially complete software (sub-) system that is intended to be instantiated. It defines the architecture for a family of (sub-) systems and provides the basic building blocks to create them. It also defines the places where adaptations for specific functionality should be made. In an object-oriented environment a framework consists of abstract and concrete classes.)



关于作者

  温昱。资深咨询师,CSAI特聘高级顾问,《软件架构设计》作者,松耦合空间(www.ou-he.com)网站创办人。十年系统规划、架构设计和研发管理经验,软件架构思想的传播者和积极推动者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: