一個程序員團隊正在審查新工具類的建議API。在討論了一些 之後,他們意識到,如果沒有 的功能,它們可以減少API中的方法數量。如果他們實施新設計,那麼他們將推廣哪兩項OO原則?scjp有關設計的問題
A. Looser coupling B. Tighter coupling C. Lower cohesion D. Higher cohesion E. Weaker encapsulation F. Stronger encapsulation
有人可以告訴我,答案是什麼?
一個程序員團隊正在審查新工具類的建議API。在討論了一些 之後,他們意識到,如果沒有 的功能,它們可以減少API中的方法數量。如果他們實施新設計,那麼他們將推廣哪兩項OO原則?scjp有關設計的問題
A. Looser coupling B. Tighter coupling C. Lower cohesion D. Higher cohesion E. Weaker encapsulation F. Stronger encapsulation
有人可以告訴我,答案是什麼?
我的回答將是
鬆耦合和 更高的凝聚力
如果接下來的問題是爲什麼呢?那麼我建議你去通過這篇文章:
http://blog.sanaulla.info/2008/06/26/cohesion-and-coupling-two-oo-design-principles/
我不認爲它是凝聚力,因爲這些方法可以被刪除而不會丟失任何功能。這表明該類的整體功能沒有改變。 – 2011-04-12 12:22:04
@Robin Green,如果同一個方法用於多個目的,那麼在不影響功能的情況下很難刪除它。你可以檢查鏈接給出的詳細內聚。 – GuruKulki 2011-04-12 12:32:23
我同意你的評論,但這與問題無關!你首先對* previous *設計做了一個可疑的假設(它是有凝聚力的),但無論如何這並不重要,因爲問題並沒有提及* previous *設計,而是詢問了* new *設計! – 2011-04-12 12:37:00
我會說,首先,更強的封裝。假設API中不再存在的方法之一(即它被私有或刪除)提供了更多的「低級」功能,仍然可以通過剩餘的「更高級別」方法訪問這些功能。我認爲這就是你應該假設的。在這種情況下,您已經改進了封裝,因爲您可以自由更改方法參數的數量和類型,方法的名稱以及返回類型,甚至完全刪除該方法並將其功能摺疊到其調用方中, ,而不會影響API的客戶端。
對不起,其中兩個?好吧,它也會促進更寬鬆的耦合,因爲類和客戶之間的耦合點較少,因此以不同方式破壞事物的機會較少。
@Suresh我不明白您的評論。 – 2011-04-12 12:24:17
這是功課嗎?考試樣題? – 2011-04-12 12:30:28
java中的數學類是一個實用API。看看他們的方法。 – 2011-04-12 12:30:51