中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

OOD設計原則(ze)之(zhi)開閉(bi)原則(ze)(OCP)

開閉原(yuan)則OCP(Open-Close Principle)被稱作是OOD的(de)基(ji)石,是OOD最重要的(de)原(yuan)則之一。

這個(ge)(ge)原(yuan)則(ze)(ze)由大(da)師Bertrand Meyer在1988年提出(chu)(汗(han),那個(ge)(ge)時候恐(kong)怕(pa)國內(nei)還很少(shao)人知道OO,甚至計算機為何物):Software entities should be open for extension,but closed for modification。多簡單啊?!這個(ge)(ge)原(yuan)則(ze)(ze)的意思(si)大(da)概是說:軟件對(dui)擴(kuo)展應該(gai)是開(kai)(kai)發的,對(dui)修改(gai)應該(gai)是關閉的。說的更通俗點兒,就是說我(wo)們開(kai)(kai)發了一個(ge)(ge)軟件,應該(gai)可以對(dui)它進(jin)行功能擴(kuo)展(開(kai)(kai)放),而在進(jin)行這些擴(kuo)展的時候,不需要對(dui)原(yuan)來(lai)的程序進(jin)行修改(gai)(關閉)!

為什么會有這樣的要求呢?如果一個軟件是符合OCP原則的,那么至少,我們有兩個極大的好處:
1.在軟件可用性上,非常靈活。你可以在軟件完成對軟件進行擴展,加入新的功能。這樣,這個軟件就可以通過不斷的增加新模塊滿足不斷變化的新需求!
2.由于對軟件原來(lai)的模(mo)塊不(bu)能(neng)修(xiu)改,因此(ci)不(bu)用擔心軟件的穩定(ding)性(xing)。

目前,對OCP的實現,主要的一條就是抽象,就是(shi)我們常常掛在嘴邊(bian)的要面向抽象(xiang)(接口)。把(ba)系統(tong)的所(suo)有可(ke)(ke)能(neng)(neng)的行(xing)為抽象(xiang)成一個(ge)抽象(xiang)底層,這個(ge)抽象(xiang)底層規定出所(suo)有的具(ju)體類必(bi)須提供的方法的特(te)征作為系統(tong)設(she)計(ji)的抽象(xiang)層,這個(ge)抽象(xiang)層要預(yu)見所(suo)有可(ke)(ke)能(neng)(neng)的擴展,從而(er)使(shi)得在任何擴展情況下,系統(tong)的抽象(xiang)層不需修改;同時(shi)由于可(ke)(ke)以從抽象(xiang)層導出一個(ge)或多個(ge)新的具(ju)體類可(ke)(ke)改變(bian)系統(tong)的行(xing)為,因此對(dui)于可(ke)(ke)變(bian)的部分,系統(tong)設(she)計(ji)對(dui)擴展是(shi)開放的。

關于系統可(ke)變(bian)的部分,還(huan)有一(yi)個更(geng)具(ju)體的對可(ke)變(bian)性(xing)封裝原則(ze)(Principle of Encapsulation of Variation,  EVP),從工程實現(xian)的角度對開閉原則(ze)進(jin)行(xing)了進(jin)一(yi)步的解(jie)釋。EVP要求在做系統設計的時候,對系統所有可(ke)能(或允許)發生(sheng)變(bian)化的部分進(jin)行(xing)評(ping)估和分類,每一(yi)個可(ke)變(bian)的因(yin)素都(dou)單獨進(jin)行(xing)封裝。

我們很(hen)容易就可(ke)(ke)以(yi)想(xiang)(xiang)到,在設計的(de)(de)開始(shi)就羅列(lie)系統(tong)所(suo)有可(ke)(ke)能的(de)(de)行為加入(ru)到抽象底層是不(bu)可(ke)(ke)能的(de)(de)(實(shi)(shi)際(ji)上也是不(bu)合算的(de)(de)),對所(suo)有的(de)(de)可(ke)(ke)變因素進(jin)行預計和(he)封裝也不(bu)太現(xian)實(shi)(shi),因此,開閉原(yuan)則(ze)(ze)很(hen)難被(bei)完全(quan)實(shi)(shi)現(xian),只能在某些(xie)模塊、某種(zhong)程度(du)上、某個限度(du)內符合OCP的(de)(de)要(yao)求。所(suo)以(yi)可(ke)(ke)以(yi)說,OCP具有理想(xiang)(xiang)主義的(de)(de)色彩,是OOD的(de)(de)終極目標。因此,針對OCP的(de)(de)實(shi)(shi)現(xian)方法,許多(duo)OOD的(de)(de)大師都費盡(jin)心機,研究OCP的(de)(de)實(shi)(shi)現(xian)方式。后面要(yao)提到的(de)(de)里(li)氏代換原(yuan)則(ze)(ze)、合成復用(yong)原(yuan)則(ze)(ze),依(yi)賴(lai)倒轉原(yuan)則(ze)(ze),接口(kou)隔離原(yuan)則(ze)(ze),抽象類,迪(di)米特法則(ze)(ze)等(deng),都可(ke)(ke)以(yi)看作(zuo)是OCP的(de)(de)實(shi)(shi)現(xian)方法。

posted on 2012-03-14 22:28  ①塊腹肌  閱讀(1424)  評論(0)    收藏  舉報