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