|
對于“封裝變化點(diǎn)”和“針對接口編程”這兩句話,我現(xiàn)在是這樣理解的:有別于傳統(tǒng)的或者沒有深入包含OO思想的編程,遵循這兩項(xiàng)設(shè)計原則的程序設(shè)計方式是將程序中易發(fā)生改變的部分抽離出來成為某種意義上的“小部件”,并且在原先程序中被剝離的部分留出“插槽”。這種“插槽“對于實(shí)現(xiàn)相應(yīng)接口的所有小部件開放。原先各種可能存在的變化被封裝成各種小部件備用。在程序運(yùn)行時根據(jù)實(shí)際情況動態(tài)地為程序裝載上小部件。這其中有一個非常與眾不同的一點(diǎn):遵照此設(shè)計之前的代碼執(zhí)行過程是直接對某功能進(jìn)行實(shí)現(xiàn)操作;而根據(jù)這兩個設(shè)計原則的程序代碼在執(zhí)行時是對已實(shí)現(xiàn)某功能的部件進(jìn)行組裝,其本身無需關(guān)注具體的實(shí)現(xiàn)過程。這樣的好處在于,小部件與程序主體被分離開來,減小了耦合。小部件之間被很好的隔離,彼此不需要知道對方的存在,自然也不會相互產(chǎn)生干擾。在測試上可以很明確的按照模塊來測試,思路清晰簡潔。在面對需求變更所帶來的維護(hù)上,這種設(shè)計往往有著無與倫比的優(yōu)越性——這個過程將不會是以往從幾萬行代碼中找出需要更改的部分然后在小心翼翼地去更改它(因?yàn)楦牟簧鲗䦟?dǎo)致原本正常工作的代碼出現(xiàn)新的問題),而是由程序員新”制作“一個實(shí)現(xiàn)接口的小部件,然后在主程序中找出那句將小部件和主程序連接在一起的代碼,修改它(注意,僅僅是這么一句)。
|
|