開閉原則的概念
1. 開閉原則的概念
今天充分理解了什么是開閉原則。
原話是“Sofstware entities should be open for extension ,but closed for modification”
一個軟件實(shí)體應(yīng)當(dāng)是對擴(kuò)展開放,對修改關(guān)閉。
閻宏的理解是:在設(shè)計一個模塊的時候,應(yīng)當(dāng)是這個模塊可以在不被修改的前提下被擴(kuò)展;應(yīng)當(dāng)可以
在不必修改源代碼的情況下改變這個模塊的行為。
2. 開閉原則的思想
(1)抽象與具體在程序設(shè)計思想中的體現(xiàn)
我覺得就是體現(xiàn)了一種穩(wěn)定中又包含變化的思想。系統(tǒng)的核心結(jié)構(gòu)是相對穩(wěn)定的,在設(shè)計它的時候,
就要提取可變化的部分,形成對變化的抽象,最后萬變不離其中。可擴(kuò)展的范圍不是任意的,而是在
你的穩(wěn)定的那部分(對變化的抽象)所允許的范圍內(nèi)。當(dāng)超過了這個范圍那么穩(wěn)定的也要發(fā)生改變。
(2)開閉原則在Java中的體現(xiàn)
如何控制變化?也就是閻宏所說的“抽象化是關(guān)鍵”。
最為精彩的那部分是由于從抽象層導(dǎo)出一個或多個新的具體類可以改變系統(tǒng)的行為,因此系統(tǒng)的設(shè)計
對擴(kuò)展是開放的。對于這種抽象的方法,在JAVA 中有Java接口和抽象類。
(3)對可變性的封裝原則
這個概念非常精彩,開閉原則中的“閉”,就是要把這些變化封閉起來。我們在做設(shè)計時要改變思維
方式:“考慮你的設(shè)計中什么可能會發(fā)生變化。與通常將焦點(diǎn)放到什么會導(dǎo)致涉及改變的思考方式正
好相反,這一思路考慮的不是什么會導(dǎo)致設(shè)計的改變,而是考慮你允許什么發(fā)生變化而不讓這一變化
導(dǎo)致重新設(shè)計”。
這就要求可變性匯集和可變性獨(dú)立
在需求分析過程中,盡力的區(qū)抓住用戶相對穩(wěn)定的需求,分析變化的需求.
posted on 2007-04-05 09:19 feeling 閱讀(338) 評論(0) 編輯 收藏 所屬分類: java與模式