在我的网站上,我将以一些答案显示一个主要问题。
因此,如果用户点击其中一个答案,我将再次以相应的答案显示一些问题列表。所以每个答案都会再次遇到一些问题。这个过程一直持续到有一个没有问题的答案。我如何才能在java和html端的服务器端最有效地完成它。如何在某个模型中存储此结构。
如果有人知道任何实现此逻辑的开源项目,请帮助。
答案 0 :(得分:1)
听起来你需要一棵树:
在Java中你可以像这样代表它:
class Question {
// The question, for example "What is the color of the sky?"
String question;
// List of answer alternatives: For example
// - Blue (with destination, "What is the color of the sun?")
// - Red (with destination null)
List<Answer> answers;
}
class Answer {
// The answer, for example "Blue"
String answer;
// The next question (or null, if this answer is terminating)
Question destinationQuestion;
}
要创建这些对象的完整树,您需要
提供每个属性需要一个参数的构造函数
在这种情况下,您需要从树叶中构建树(因为除非您已经创建了它们,否则无法为中间节点提供参数)
创建“setter”-methods,创建所有问题并“设置”适当的子项。 (这将允许您从根到叶构建树。)
其他替代方案:
如果您想在多个地方重复使用树的某些部分(例如,如果多个答案导致相同的答案),您可以使用DAG(有向非循环图)
如果您想在问题系统中允许循环,可以使用普通有向图。
无论哪种方式,我上面描述的两个类都符合要求!