上文討論的例子是一個簡單的例子,主要是從代碼層面來講述框架的概念。但是為了完全理解框架的威力,我們需要從更高的層次來看待框架的概念。我們選擇的例子是Eclipse。從IBM向開放源碼界捐贈Eclipse以來,Eclipse迅速成為一種非常優秀的集成開發工具(它絕對不是簡單的Java IDE),Eclipse緣何成功呢?關鍵在于Eclipse的設計理念和根據設計理念發展起來的底層支持框架。
在軟件開發中,需要各種各樣的技能,需要各種各樣的開發工具,但是工具之間如果彼此不能夠相互交互,那么開發流程就難以連貫。Eclipse的目標就是要解決這個問題。
Eclipse平臺的價值在于它的促進作用:根據插件模型來快速開發集成功能部件。
那么怎么做呢?我們來看Eclipse自己對這個問題的描述:
Eclipse 的核心是動態發現插件的體系結構。平臺負責處理基本環境的后臺工作,并提供標準的用戶導航模型。于是每個插件可以專注于執行少量的任務。有哪些類型的任務?定義、測試、制作動畫、發布、編譯、調試、圖解等等,只要您想象得到的應有盡有。
Eclipse的平臺運行環境是框架的支持部分,而平臺中涉及的Workbench、Help、Team、Workspace都屬于抽象體,而插頭表示系統的擴展點(稱為hook)。
這里重點要討論的是Eclipse的定位哲學。Eclipse作為一個集成開發工具,他希望能夠將各種各樣的開發工具集中到一個平臺下,但是所有的事情都由一個組織來做是不可能的,最好的方式就是建立一種組織方式,能夠將不同技術提供商的技術集成起來。所以他的定位哲學就是提供做事的方法,而不做具體的事情。
這種思路在優秀的軟件設計中是很常見的,另一個優秀的范例是Ant。由于篇幅所限,我們就不進行深入討論了。
所以Eclipse只是提供針對IDE環境、Java對象模型提供了一組的抽象體,插件的開發者可以根據自己的需要,設計自己的插件,通過擴展點接入到Eclipse。Eclipse是一個成功的軟件,也是一個成功的框架。
深入了解
developerWorks 上的 Eclipse 平臺入門一文提供了Eclipse的相關信息。
框架過程模式是一本討論框架設計過程的書籍,您可以從中了解到框架的開發過程和普通軟件的開發過程的區別
關于作者
林星,致力于研究敏捷理論和優秀的軟件設計思想,并將之應用于國內的軟件組織?梢酝ㄟ^ iamlinx@21cn.com 和他聯系,也可以通過訪問 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.qca.cn 和 http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-frmwk/www.aglichina.org 來獲得更多的信息。
文章來源于領測軟件測試網 http://www.kjueaiud.com/