我正在为一个在线考试模块制作一个网络应用,想知道如何改进我目前的设计和抽象。考试是多项选择题。
到目前为止,我的数据库中有三个表:
1.考试
2.问题
3.答案
这就是我对课程的想法:
public class Exam
{
private int Id;
private String name;
private int timePerQuestionInSeconds;
private int pointsPerQuestion;
private int numberOfQuestions;
private ArrayList<Question> questionList;
}
public class Question
{
private int Id;
private int examID;
private String text;
private String figure;
private String category;
private String name;
private ArrayList<Answer> answers;
}
public class Answer
{
private int id;
private int questionId;
private String text;
private boolean correct;
private String name;
}
所以要想参加考试,我必须从考试中选择ByExamName,然后从问题中选择ByExamid,然后从答案中选择ByQuestionID。然后将这些结果集映射到对象。
相反,如果我要使用JPA来持久化这些实体,是否可以持久化实体的ArrayList?我在课堂考试中是否正确
[Question.class]
私人阵列表(问题);
在课堂上,我应该问
@许多人
私人考试;
建立理想的关系?顺便说一句,我使用的是JavaSE,所以我不确定我是否拥有JavaEE对beans的所有支持。
我还需要一些方法来存储学生的考试成绩。我在考虑一个表分数,它有fk到学生id,我可以通过学生id查询该表以返回学生的分数。
关于考试表中的num_question属性,这是必要的吗?从问题表中数行不是很准确吗?
另外,points_per_question取决于考试还是问题?(我认为它基于问题)。如果是这样,那么它应该是问题表的一个属性,也许还有time_per_question属性。(困难或更长的问题允许更多的时间?)这都是基于你最初的要求。
否则,我觉得没问题。
Appart from JPA,对于您编写的每个类,您应该尽可能使用接口而不是具体类声明bean变量。使用java.util.List而不是java.util.ArrayList。
我正在尝试对扩展抽象基的类进行单元测试。以下是“类似的类”,以供说明: 下面是我正在尝试的单元测试: 当我做这个测试的时候 java.lang.NullPointerException 在中 我知道自动连线的“滤水器”没有初始化。但接下来,我只想在我的单元测试中模拟抽象的“非抽象”方法。 我该如何使用EasyMock来实现这一点呢?另外,我不知道和应该做什么。
主要内容:介绍,实现,Shape.java,Rectangle.java,Square.java,Circle.java,Color.java,Red.java,Green.java,Blue.java,AbstractFactory.java,ShapeFactory.java,ColorFactory.java,FactoryProducer.java,AbstractFactoryPatternDemo.java抽象工厂模式(Abstract Factory Pattern)是围绕一个超级
抽象工厂模式 亦称: Abstract Factory 意图 抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。 问题 假设你正在开发一款家具商店模拟器。 你的代码中包括一些类, 用于表示: 1、一系列相关产品, 例如 椅子Chair 、 沙发Sofa和 咖啡桌CoffeeTable 。 2、系列产品的不同变体。 例如, 你可以使用 现代Modern 、
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 介绍 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 主要
简介 抽象工厂模式是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。在正常使用中,客户端程序需要创建抽象工厂的具体实现,然后使用抽象工厂作为接口来创建这一主题的具体对象。客户端程序不需要知道(或关心)它从这些内部的工厂方法中获得对象的具体类型,因为客户端程序仅使用这些对象的通用接口。抽象工厂模式将一组对象的实现细节与他们的一般使用分离开来。 简例 有个
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 介绍 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 主要