框架黑白盒
65 2017-05-23
框架可分為白盒(White-Box)與黑盒(Black-Box)兩種框架。
基于繼承的框架被稱為白盒框架。所謂白盒即具備可視性,被繼承的父類的內(nèi)部實現(xiàn)細節(jié)對子類而言都是可知的。利用白盒框架的應(yīng)用開發(fā)者通過衍生子類或重寫父類的成員方法來開發(fā)系統(tǒng)。子類的實現(xiàn)很大程度上依賴于父類的實現(xiàn),這種依賴性限制了重用的靈活性和完全性。但解決這種局限性的方法可以是只繼承抽象父類,因為抽象類基本上不提供具體的實現(xiàn)。白盒框架是一個程序骨架,而用戶衍生出的子類是這個骨架上的附屬品。
基于對象構(gòu)件組裝的框架就是黑盒框架。應(yīng)用開發(fā)者通過整理、組裝對象來獲得系統(tǒng)的實現(xiàn)。用戶只須了解構(gòu)件的外部接口,無須了解內(nèi)部的具體實現(xiàn)。另外,組裝比繼承更為靈活,它能動態(tài)地改變,繼承只是一個靜態(tài)編譯時的概念。
在理想情況下,任何所需的功能都可通過組裝已有的構(gòu)件得到,事實上可獲得的構(gòu)件遠遠不能滿足需求,有時通過繼承獲得新的構(gòu)件比利用已有構(gòu)件組裝新構(gòu)件更容易,因此白盒和黑盒將同時應(yīng)用于系統(tǒng)的開發(fā)中。不過白盒框架趨向于向黑盒框架發(fā)展,黑盒框架也是系統(tǒng)開發(fā)希望達到的理想目標。
2.熱點、食譜以及好萊塢原則
成功的框架開發(fā)需要確定領(lǐng)域?qū)S玫摹盁狳c”(Hot
spot)。應(yīng)用開發(fā)者在框架的基礎(chǔ)上進行開發(fā),只須擴展框架的某些部分,“熱點”就是在應(yīng)用領(lǐng)域的一種擴展槽,開發(fā)者根據(jù)自己的需要填充這些擴展槽?!盁狳c”使框架具有靈活性,如在具體的實現(xiàn)中,擴展槽可以被看成是一些抽象類,開發(fā)者通過重寫抽象方法獲得具體實現(xiàn)。
“食譜”
(Cookbook)就是描述如何使用框架方法的文檔。在“食譜”中包含了許多“烹飪”方法,這些“烹飪”方法相當于一些具體的操作步驟,描述了為解決某一專門問題如何使用框架的詳細方法??蚣艿膬?nèi)部設(shè)計和實現(xiàn)細節(jié)通常不出現(xiàn)在“食譜”中。
框架的一個重要特征就是用戶定義的方法經(jīng)常被框架自身調(diào)用,而不是從用戶的應(yīng)用代碼中調(diào)用。這種機制常稱為“好萊塢原則”(Hollywood
Principle)或“別調(diào)用我們,我們會調(diào)用您”。
請聯(lián)系網(wǎng)站客服,了解詳細的課程信息~
優(yōu)質(zhì)、便捷、省心
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)服務(wù)號