2016-04-04 3 views
0

Ich glaube, das ist eine ziemlich einfache Frage, ich habe einfach nicht die Antwort, wie ich noch relativ neu in der Programmierung bin. Ich programmiere seit über einem Jahr, aber ich arbeite an einem Projekt mit einer anderen Person und wir hatten einige Unstimmigkeiten darüber, welche Methoden wohin gehen sollten. Es ist mir egal, dass ich recht habe, aber ich würde gerne wissen, was die beste Vorgehensweise ist, wenn es darum geht, was zu tun ist.Wie zu entscheiden, ob eine Methode in eine Datendefinitionsklasse (DDC) oder die Implementierungsklasse gehen sollte

Die allgemeine Frage: Gibt es eine Faustregel zur Entscheidung, ob eine Methode in eine DDC-Klasse oder in die Implementierungsklasse gehen sollte? Ist es wirklich egal, ob es in beide Richtungen funktioniert?

Zum Beispiel haben wir zwei Klassen: Student und Counselor. Ein Student hat eine Liste von Zeitplänen (bis zu 4) und jeder Zeitplan enthält mehrere Kurse. Beide Benutzer können Zeitpläne für einen Schüler erstellen. Sie können auch den aktuellen Zeitplan anzeigen und vergangene Zeitpläne anzeigen. Sollte die Logik dieser Methoden in der Implementierungsklasse sein und nur bestimmte Methoden aufrufen (getSchedules) und sie auf bestimmte Arten manipulieren, um die Funktionen auszuführen, die wir wollen, oder kann die Logik in der DDC selbst sein und von der Implementierung nennen wir sie nur das Besondere Methoden aus der Implementierungsklasse?

Antwort

1

In diesem Fall sollten die Deklarationen in den DDC gehen, um doppelten Code zu vermeiden. Eine Alternative wäre eine neue Klasse, Benutzer, die sowohl von Student als auch von Counsellor erweitert wird. Sie sollten die gleiche Methode jedoch nie zweimal in zwei verschiedenen Klassen schreiben.

Der Grund ist, dass später, wenn Sie Ihren Code ändern möchten, es schwierig wird, wenn Sie es mehr als einmal ändern müssen. Bei größeren Projekten kann dies zu einem großen Problem werden.

+0

Ich hatte eine abstrakte Benutzerklasse, die sowohl Student und Counselor erweitern. Ich habe nicht vorgehabt, die Methode zu duplizieren, indem ich sie zweimal irgendwo hinstellte. Ich verstehe deine Argumentation, der ich mein Bestes gebe. Abgesehen von doppeltem Code ging es mir mehr um die richtige Platzierung bestimmter Methoden innerhalb des Programms (DDC oder Implementierung), von denen ich glaube, dass Sie sie beantwortet haben. Danke! – Kevin

Verwandte Themen