Wie kann ich das design eine Klasse mit Allergie?
Anforderung: entwerfen Sie eine Klasse namens Allergie, bietet Informationen über die Allergie des Patienten. z.B., berichtet die Allergie(patient/Arzt/relativ), unterschiedliche Symptome der Allergie, die erkannt werden, die Schwierigkeit, die Methode, die zurückgibt, wenn war, dass die Allergie erkannt und die Patienten.
Ich denke an so etwas wie dieses:
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;
}
}
Ist das eine gute design der Klasse? Gibt es irgendeine Weise, die ich besser gestalten können? Oder hat jemand eine bessere Umsetzung?
Ich in der Lage sein, zu erklären, wie viele OOP-Konzepte. Kann ich irgendeine andere OOP-Konzept hier abgesehen von der abstrakten, Kapselung und Vererbung, dass ich in der Lage zu nutzen, die das aktuelle design in meinem Kopf?
p
für public
. Und vielleicht timeReported
könnte ein Date
(wenn das Java-7 oder darunter) oder eine Instant
(wenn dies ist, Java 8) anstelle einer int
.Diese Frage scheint mehr geeignet zu Code Überprüfen, da fragt er nach Meinungen über die Arbeit der code. Es ist nicht wirklich eine gute Passform für Stack-Überlauf, weil es open-ended ohne klare problem zu lösen.
Abgesehen von der Tatsache, dass der code nicht funktioniert, da der kleinere syntax-Fehler, da Stimme ich zu.
InformationsquelleAutor user3780902 | 2015-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
wie wäre es mit einem enum für Schweregrad(niedrig, hoch, Mittel) und der Nutzung einer enum-für den reporter(patient, Arzt, familymember, andere) und mit HashSet für die Symptome.
InformationsquelleAutor Rani
Beste Weg, um haben Pojo-Allergie und Patienten. Der Patient hat eine Allergie. Allerdings kann der patient Allergien haben, dann können Sie hinzufügen Datenstruktur wie arrayList von Allergien.
InformationsquelleAutor Anand Kulkarni
Abgesehen von der syntax-Fehler erwähnt im Kommentar, und vorausgesetzt, dass Sie, sollten Sie nicht verwenden die Vererbung, das Konzept Sie sind am meisten fehlt, sind Schnittstellen.
So was könnte man ein interface Krankheit (genannt IDisease) und lassen Sie die Allergie-Klasse implementieren, d.h.
Über eine Schnittstelle, hier könnte gerechtfertigt sein, im Falle später Sie möchten, schreiben Sie einen Algorithmus, um zu analysieren, alle verschiedenen Arten von Krankheiten (einschließlich Allergien) und möchten, dass der Algorithmus entkoppelt von der eigentlichen details zu einer bestimmten Krankheit.
Ich kann alle OOP-Konzepte hier. Ich bin, sorry ich war nicht klar in den Anforderungen. Erwähnte ich, dass mit meinem design hatte ich bereits umgesetzt, Abstraktion, Vererbung( Andere Kind-Klassen, wie die Haut allerygy , Auge Allergie oder was auch immer haben würde, zu verlängern oder Erben von dieser abstrakten Klasse Allergie) und Kapselung ( durch Variablen private). Ich wurde gefragt, ob ich machen könnte Verwendung von anderen Konzepten, die in meinem aktuellen design, um es besser zu machen? Andere als die syntax-Fehler, denken Sie, dass mein Aktuelles design ist gut genug? Vielen Dank im Voraus
Hinzugefügt Kommentar warum-Schnittstelle nützlich sein könnte, thx für den Hinweis.
InformationsquelleAutor Ueli Hofstetter