我怎样才能设计一个名为过敏的课程?

时间:2015-03-26 01:09:59

标签: java class oop

要求:设计一个名为过敏的课程,提供有关患者过敏的信息。例如谁报告过敏(患者/医生/亲属),检测到过敏的不同症状,严重程度,在该患者检测到过敏时返回的方法。

我在考虑这样的事情:

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概念,除了抽象,封装和继承,我将能够使用当前的设计在我的脑海中?

3 个答案:

答案 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>