軟件設計模式複習題(doc 8頁)
軟件設計模式複習題(doc 8頁)內容簡介
軟件設計模式複習題內容提要:
1.簡述“開—閉”原則的基本思想。請舉出一個使用了軟件“開—閉”原則的軟件設計模式,其中何處體現了“開—閉”原則。
答:“開—閉”原則:軟件實體應當對擴展開放,而對修改關閉,“開-閉”原則要求軟件係統能夠在不需要修改原有類的基礎上,通過增加類達到擴展功能的目的。
Abstract factory體現了這個原則,如果想增加一類新的products,隻需在product類體係中增加各個products,然後在factory類體係結構中增加一個concrete factory就可以了,而不需要對現有類做任何修改,The Open-closed principle[ocp]在不改動過模塊源代碼的情況下擴展模塊的行為。
軟件實體(類模塊 函數等)應該是可以擴展的,但是不可以修改的。
2.簡述依賴例轉原則的基本思想。請舉出一個使用了軟件依賴原則的軟件設計模式,其中何處體現了依賴原則。
答:依賴倒置原則的基本思想是:①高層模塊不應該依賴於低層模塊,二者都應該依賴於抽象。②抽象不應該依賴於細節,細節應該不依賴於抽象。Tomplate method就體現了這個原則,它定義了一個操作中的算法骨架,而將一些步驟延遲到子類中,template method使得子類不改變一個算法的結構,即可重定義該算法的某些特定步驟。
3.什麼是單一職責原則?請舉出一個使用了單一職責原則的軟件設計模式,其中何處體現了單一職責原則。
答:基本思想:SRP使得一個類或一個模塊承擔的責任盡可能的少,使盡可能少的因素或動機影響該類或該模塊,即增大類或模塊的內聚性,減少其耦合度,SRP是所有原則中最簡單的之一,也是最難正確運用的之一。
COMMAND模式體現了SRP原則,大多數類都是一組方法和相應的一組變量的結合,而該模式隻是封裝了一個沒有任何變量的函數,它對函數的關注超過了類,將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數化。
4.軟件複用可采用類的繼承方式和類的聚合方式,比較兩者的優缺點。
答:聚合:一個對象擁有另一個對象或對另一個對象負責(即一個對象包含另一個對象或是另一個對象的一部分)並且聚合對象和其所有具有相同的生命周期(即所謂的“同生共死”關係)。
聚合複用優點:①容器類僅能通過被包含對象的接口來對其進行訪問。②“黑盒”複用,因為被包含對象的內部細節對外是不可見。③包裝性好。④實現上的相互依賴性比較小。⑤每一個類隻專注於一項任務。⑥通過獲取指定其他的具有相同類型的對象的使用,可以在運行期間動態地定義(對象的)組合。
聚合的缺點:①導致係統中的對象過多 ②為了能將多個不同的對象作為組合塊來使用,必須仔細地對接口進行定義。
類繼承:是一種通過擴展(一個已有對象的)實現,從而獲得新功能的複用方法。
繼承的優點:①容易進行新的實現,因為其大多數可繼承而來 ②易於修改或擴展那些被複用的實現。
繼承的缺點:①破壞了封裝性,因為這會將父類的實現細節暴露給子類 ②“白盒”複用,因為父類的內部細節對於子類而言通常是可見的 ③當父類的實現更改時,子類也不得不隨之更改 ④從父類繼承來的實現將不能在運行期間進行改變。
..............................
1.簡述“開—閉”原則的基本思想。請舉出一個使用了軟件“開—閉”原則的軟件設計模式,其中何處體現了“開—閉”原則。
答:“開—閉”原則:軟件實體應當對擴展開放,而對修改關閉,“開-閉”原則要求軟件係統能夠在不需要修改原有類的基礎上,通過增加類達到擴展功能的目的。
Abstract factory體現了這個原則,如果想增加一類新的products,隻需在product類體係中增加各個products,然後在factory類體係結構中增加一個concrete factory就可以了,而不需要對現有類做任何修改,The Open-closed principle[ocp]在不改動過模塊源代碼的情況下擴展模塊的行為。
軟件實體(類模塊 函數等)應該是可以擴展的,但是不可以修改的。
2.簡述依賴例轉原則的基本思想。請舉出一個使用了軟件依賴原則的軟件設計模式,其中何處體現了依賴原則。
答:依賴倒置原則的基本思想是:①高層模塊不應該依賴於低層模塊,二者都應該依賴於抽象。②抽象不應該依賴於細節,細節應該不依賴於抽象。Tomplate method就體現了這個原則,它定義了一個操作中的算法骨架,而將一些步驟延遲到子類中,template method使得子類不改變一個算法的結構,即可重定義該算法的某些特定步驟。
3.什麼是單一職責原則?請舉出一個使用了單一職責原則的軟件設計模式,其中何處體現了單一職責原則。
答:基本思想:SRP使得一個類或一個模塊承擔的責任盡可能的少,使盡可能少的因素或動機影響該類或該模塊,即增大類或模塊的內聚性,減少其耦合度,SRP是所有原則中最簡單的之一,也是最難正確運用的之一。
COMMAND模式體現了SRP原則,大多數類都是一組方法和相應的一組變量的結合,而該模式隻是封裝了一個沒有任何變量的函數,它對函數的關注超過了類,將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數化。
4.軟件複用可采用類的繼承方式和類的聚合方式,比較兩者的優缺點。
答:聚合:一個對象擁有另一個對象或對另一個對象負責(即一個對象包含另一個對象或是另一個對象的一部分)並且聚合對象和其所有具有相同的生命周期(即所謂的“同生共死”關係)。
聚合複用優點:①容器類僅能通過被包含對象的接口來對其進行訪問。②“黑盒”複用,因為被包含對象的內部細節對外是不可見。③包裝性好。④實現上的相互依賴性比較小。⑤每一個類隻專注於一項任務。⑥通過獲取指定其他的具有相同類型的對象的使用,可以在運行期間動態地定義(對象的)組合。
聚合的缺點:①導致係統中的對象過多 ②為了能將多個不同的對象作為組合塊來使用,必須仔細地對接口進行定義。
類繼承:是一種通過擴展(一個已有對象的)實現,從而獲得新功能的複用方法。
繼承的優點:①容易進行新的實現,因為其大多數可繼承而來 ②易於修改或擴展那些被複用的實現。
繼承的缺點:①破壞了封裝性,因為這會將父類的實現細節暴露給子類 ②“白盒”複用,因為父類的內部細節對於子類而言通常是可見的 ③當父類的實現更改時,子類也不得不隨之更改 ④從父類繼承來的實現將不能在運行期間進行改變。
..............................
用戶登陸
IT行業相關下載