要求:设计一个名为过敏的课程,提供有关患者过敏的信息。例如谁报告过敏(患者/医生/亲属),检测到过敏的不同症状,严重程度,在该患者检测到过敏时返回的方法。
我在考虑这样的事情:
public abstract class Allergy{
private String reporter;
private String symptoms;
private int timeReported;
private int severity;
//Higher the number, higher the severity
public Allergy(String reporter, String symptoms, int timeReported, int severity){
this.reporter=reporter;
this.symptoms=symptoms;
this.timeReported=timeReported;
this.severity=severity;
}
public void setReporter(String reporter){
this.reporter=reporter;
}
public void setSymptoms(String symptoms){
this.symptoms=symptoms;
}
public void setSeverity(int severity){
this.severity=severity;
}
public void setTimeReported(int timeReported){
this.timeReported=timeReported;
}
public String getReporter(){
return reporter;
}
public String getSymptoms(){
return symptoms;
}
public int getSeverity(){
return severity;
}
public int getTimeReported(){
return timeReported;
}
}
这是一个很好的班级设计吗?有什么方法可以改进设计吗?或者有人有更好的实施?
我必须能够解释尽可能多的OOP概念。我可以在这里使用任何其他OOP概念,除了抽象,封装和继承,我将能够使用当前的设计在我的脑海中?
答案 0 :(得分:2)
如何使用enum进行严重性(低,高,中)和使用enum作为报告者(患者,医生,家庭成员,其他)并使用HashSet进行症状。
答案 1 :(得分:1)
让Pojo过敏和耐心的最好方法。病人有过敏症。然而;患者可能有过敏症,那么你可以添加像过敏症阵列列表这样的数据结构。
答案 2 :(得分:0)
除了注释中提到的语法错误,并假设您不应该使用继承,您最缺少的概念是接口。 那么你可以包括一个接口疾病(称为IDisease)并让过敏类实现它,即
public interface IDisease{
void setReporter(String reporter);
//other methods
}
}
public class Allergy implements IDisease{
public Allergy(String reporter, String symptoms, int timeReported, int severity){
this.reporter=reporter;
this.symptoms=symptoms;
this.timeReported=timeReported;
this.severity=severity;
}
public void setReporter(String reporter){
this.reporter=reporter;
}
public void setSymptoms(String symptoms){
this.symptoms=symptoms;
}
public void setSeverity(int severity){
this.severity=severity;
}
public void setTimeReported(int timeReported){
this.timeReported=timeReported;
}
public String getReporter(){
return reporter;
}
public String getSymptoms(){
return symptoms;
}
public int getSeverity(){
return severity;
}
public int getTimeReported(){
return timeReported;
}
}
在这里使用界面可能是合理的,以后你想编写一个算法来分析所有不同类型的疾病(包括过敏症),并希望保持算法与特定疾病的实际细节分离。 / p>