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