快捷搜索:  test  as

温昱谈架构和框架(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)网站创办人。十年体系筹划、架构设计和研发治理履历,软件架构思惟的传播者和积极推动者。

您可能还会对下面的文章感兴趣: