2013-01-23 78 views

回答

3

把握都沒有概念聯繫在一起,所以你應該考慮它們放在一起: - 「哪個對象應該需要 行爲」

  1. 「信息專家」的問題是(請參閱 http://en.wikipedia.org/wiki/Domain-driven_design)像這個問題的答案 之一。
  2. 「凝聚力」 - 問題是,「許多不同的行爲如何畫線」 http://en.wikipedia.org/wiki/GRASP_(object-oriented_design)

你不應該學習這些概念沒有編碼實踐,編寫代碼/使重構 - 你會得到它。

+0

我們的分類結構是一種我們不做任何編碼的方式。它的所有理論。我應該如何練習這些概念?當我編寫一些代碼時,如何知道我是對還是錯? – Vizzle

+1

<<當我編寫代碼時,我怎麼知道自己是對還是錯?>> 你應該通過實踐獲得理論,而不是通過理論實踐。但無論如何,理論也是好的。編寫簡單的程序,探索https://github.com/ ....祝你好運。 – pvllnspk

0

GRASP設計模式在這裏非常正確地說(Is Information Expert from GRASP and Modell from MVC the same?)是設計原則,並支持您評估您的設計決策和實施。

GRASP中的「凝聚力」是一種評估設計模式,與「耦合」一起使用。因此,您必須使用它們來分析您的設計,以確定它是如何內聚和鬆散耦合的,這直接增強了可重用性和可擴展性。

另一方面,「信息專家」可以幫助您確定哪個班級應該承擔特定的責任。它告訴你將一定的責任分配給關於它的最多信息。 |

因此,在一個簡單的購物車用例中,您將根據數量和單價計算ShoppingItem來計算ItemItemPrice(),然後ShoppingCart計算TotalPrice()。

這成爲一個關鍵因素,並且注意到大多數GOF設計模式實際上都支持這種GRASP概念。

最重要的是。如果您在設計中應用了信息專家模式,它應該爲評估您的設計提供高度的凝聚力。這就是信息專家和凝聚力如何聯合起來,就像所有其他GRASP模式一樣。

Resources:http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandPatterns.pdf