在軟件設(shè)計(jì)模式證這種不能修改,但可以擴(kuò)展的思想也是最重要的設(shè)計(jì)原則,他就是開(kāi)放-封閉原則 (OCP)
對(duì)于程序設(shè)計(jì)而言,怎么的設(shè)計(jì)才能面對(duì)需求的改變卻可以保持相對(duì)的穩(wěn)定,從而可以使得系統(tǒng)可以再第一個(gè)版本的基礎(chǔ)上不斷的推出新版本呢?
答案是在程序設(shè)計(jì)的時(shí)候使用開(kāi)放封閉原則。
但是設(shè)計(jì)的同時(shí),絕對(duì)對(duì)修改的關(guān)閉是不可能的,無(wú)論模塊是多么的封閉,都存在一些無(wú)法對(duì)之封閉的變化,既然不可以完全的封閉,設(shè)計(jì)人員必須對(duì)他設(shè)計(jì)的模塊應(yīng)該對(duì)哪種變換的封閉做出選擇,他必須猜測(cè)出最有可能發(fā)生變換的種類,然后構(gòu)造抽象來(lái)隔離那些變化。
再我們最初寫代碼的時(shí)候,假設(shè)變化不會(huì)發(fā)生,當(dāng)變化發(fā)生時(shí)我們就構(gòu)造抽象類來(lái)隔離變化。
當(dāng)然,不是在什么情況下應(yīng)對(duì)變化都是容易的,我們希望在開(kāi)發(fā)工作展開(kāi)不久就知道可能發(fā)生的變化,查處可能發(fā)生變化所等待的時(shí)間越長(zhǎng),要?jiǎng)?chuàng)建正確的抽象就越困難。
開(kāi)放封閉原則是面向?qū)ο蟮暮诵乃冢裱@個(gè)原則可以帶來(lái)面向?qū)ο笏^的巨大好處,也就是可維護(hù),可擴(kuò)展,可復(fù)用,靈活性好。然而,對(duì)于應(yīng)用程序中的每個(gè)部分都刻意的抽象同樣不是一個(gè)i好主意,拒絕不成熟的抽象和抽象一樣重要。
新聞熱點(diǎn)
疑難解答
圖片精選