我反复遇到类似这样的场景模式:如何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