我反覆遇到類似這樣的場景模式:如何OO場景
一個集裝箱業務類模型的層次結構。
參與此層次結構並由上述類聚合的業務類。
讓我給你舉個例子。
A Map
有國家。現在Map
應該知道每個Country
在哪裏,因爲除了包含所有國家之外它的主要責任是知道每個國家的位置和鄰近。從這個角度來看,功能如isNeighbour(Country A, Country B)
似乎是Map
的正確補充。但是,每個國家還應該提供一種方法來了解一個國家是否在附近。說spain.isNeighbour(italy)
。這確實有用。現在,如果我不想重複功能和責任性,我應該採取什麼方法?
我正在學習的當前例子對於我的大學來說很重要,每門課程都需要其他課程,並且會阻止下一個課程。專業是包含所有課程和決定哪個課程在哪個課程之前的課程。說我要添加課程在彼此的依賴,例如,參加微積分2,你需要微積分1 ...我應該去calculus.addRequired(calculus2)
,然後將它傳遞給主要對象,或者也許computerScience.addRequired(calculus1, calculus2)
...
我不我不想有兩種選擇,因爲對我來說,它似乎會導致錯誤,但同時我希望每門課程都能夠回答它的要求。我真的不知道如何正確分配責任。
這是綁定到數據持久性/數據庫還是全部在內存中? – Euphoric
堅持持久。 – arg20