2
我有一個類Form
,其中包含Question
項目的散列。避免循環參考
class Form
{
Dictionary < int , Answer> listOfQuestions;
}
class Question
{
int questionId = 2;
int dependsOnQuestion = 1;
string answer;
public bool IsDependancyMet() {/*problem*/}
}
我想一個問題依賴於另一個問題,比方說一個答案,如果答案問題1是「已婚」,顯示問題2,否則,不顯示它。
什麼是正確的實施方式?
是否會將表單實例的引用添加到問題實例中,以便讓後面的一個訪問問題的散列。雖然我不喜歡它。
另一種方法是向Form
類中添加一個方法,該方法接收問題ID並檢查是否符合所有依賴關係,但問題應該再次注意表單實例。
關於底線: 誰應該檢查依賴關係以及如何讓系統模塊化,並且每個類都儘可能少地意識到它的環境?或者至少避免週期參考。
在此先感謝。
感謝您的回答。 在任何情況下,我有一個Form.Display()遍歷問題列表,並在每個問題上調用.Ask()或.Render()。問題是這個問題不一定以相同的順序出現。問題12可能取決於問題4的答案; 無論哪種情況,您的解決方案都意味着表單的Render方法將負責決定是否顯示問題,因爲它可以訪問每個問題答案和依賴關係。 我明白你的答案。謝謝。 – Alex