2010-01-05 36 views

回答

3

這實際上取決於你想要完成的細節。表面上,如果需要的話,一個模型可以與另一個模型進行交互。只要確保模型與其他模型進行交互的原因是經過深思熟慮的,並且建模交互模型不會更好地用於交互模型。

+1

「通過模型更好地服務於交流互動」這是什麼意思?謝謝......對此仍然陌生 – johnnietheblack 2010-01-05 21:53:15

+1

他可能意味着直接與對方交談的模型應該彼此有直接關係。像一個模型是另一個模型的組成部分。完全不相關的模型最好使用調解器,如控制器。 – 2010-01-05 21:56:03

+0

@julson ...所以在我的身份驗證類與用戶類談話的例子...並不真正符合這一哲學? – johnnietheblack 2010-01-05 21:58:24

3

不同的模型類交互就好了。大多數複雜的對象不是完全獨立的。與任何良好的OO代碼一樣,這些類應該使用公共方法,而不是將它們的實現公開給對方,但除此之外,它都是好的。

+0

你是什麼意思的「揭露他們的實施」?謝謝! – johnnietheblack 2010-01-05 21:52:42

+0

@johnnietheblack:如果ClassA調用ClassB,ClassA應該知道ClassB應該做什麼,但不知道它是如何做到的。例如,如果某人出於某種原因將某個ClassB的內部變量從Hashtable修改爲HashMap或TreeMap,則根本不應該影響ClassA。實際上,這意味着使用公共getter和setter來獲取私有屬性,而不是直接訪問protected或public屬性。 ClassB需要控制對其屬性的更改。 – 2010-01-08 18:18:16

2

他們當然可以相互瞭解,並利用彼此的功能。通常,最佳實踐將保持單向,但並非總是如此。像dj_segfault說的那樣,這種交互應該通過公共方法。請務必閱讀Dependency injection;只要所有公共方法仍然表現相同,改變一個班級的內部運作不應該打破另一個班級的內部運作。