Hallo,
Ich habe gerade einen Test auf Android abgeschlossen, der eine App erstellen sollte, die einen Live-News-Feed aufnimmt und anzeigt. Der Lehrer war jedoch sehr kritisch, da ich alle meine Klassen in einem Paket zusammenfasste.
Ich frage mich nur, was die beste Praxis für Verpackungsklassen ist. Für meinen speziellen Test habe ich folgende Klassen unter diesem Paketnamen:
com.viewsys.ncon
Meine Klassen waren diese:
%Vor%Vielen Dank für Anregungen,
Zuerst können Sie nach Model (Klassen, die Ihre Daten enthalten) und View (alles für die Anzeige) trennen und dann können Sie Unterpakete für verschiedene Arten von Klassen erstellen.
Zum Beispiel:
com.viewsys.ncon
com.viewsys.ncon.model
com.viewsys.ncon.model.db
com.viewsys.ncon.view
com.viewsys.ncon.view.activities
com.viewsys.ncon.view.fragments
Sie sollten versuchen, die Abhängigkeitszyklen von Paketen zu minimieren. Das heißt, ein Paket kann von einem anderen (oder mehreren anderen) Paket abhängen und seine Klassen verwenden, aber das erforderliche Paket sollte die Abhängigkeit vom ersten Paket minimieren. also sollten die abhängigen Anrufe nur in eine Richtung gehen.
Nun, ich benutze die folgenden Pakete -
Als eine allgemeine Regel, was Steve sagte, ist richtig, wenden Sie das Prinzip der Kohäsion und Kopplung an.
Ich strukturiere meine Pakete ähnlich wie Simulants Ratschläge. Ich habe festgestellt, dass dies der beste Ansatz für die Aufrechterhaltung eines gut strukturierten Projekts ist.
Ich erstelle jedoch auch Unterpakete für Objekte, die eines Ihrer eigenen Objekte erweitern. Zum Beispiel:
%Vor%Dieser spezielle Ansatz kann sehr nützlich sein, um Ihr Projekt zu navigieren, sobald es ein bisschen größer wird, besonders wenn Sie eine Menge früherer Funktionalität von benutzerdefinierten Objekten erweitern.
Die Aufteilung Ihrer Klassen in Pakete sollte nach den Programmierprinzipien von Kohäsion und Kopplung erfolgen.
Zusammenhalt, einfach gesagt, bedeutet, dass Dinge, die verwandt sind (oder eines Typs), zusammenpassen sollten. Zum Beispiel Ihre Fragmente und Ihre Aktivitäten, wie von Simulant vorgeschlagen.
Kopplung ist, wie stark verschiedene Dinge voneinander abhängen. Wo immer es möglich ist, sollten Dinge lose gekoppelt sein - wo Abhängigkeiten nur in eine Richtung gehen. Wenn zwei Module voneinander abhängen, sagen wir, dass sie fest gekoppelt sind und sie sollten Teil desselben Pakets sein - obwohl Sie ihre Abhängigkeiten möglicherweise durch Einführung einer Schnittstelle trennen möchten. Wenn die Abhängigkeiten nur eine Möglichkeit sind (wie sie sein sollten), können Sie sie in verschiedene Pakete aufteilen.
Versuchen Sie immer, die Module lose gekoppelt zu halten, damit sie die Skalierbarkeit in Zukunft unterstützen können. Wenn Sie alle Klassen in dasselbe Paket einfügen, kann dies zu Problemen mit der Skalierbarkeit führen. Halte die Fragmente, Aktivitäten, modelliere alles in einem anderen Paket.
Bitte werfen Sie einen Blick in dieses Repository , dort werden die besten Praktiken für die Android-Entwicklung und eine davon vorgestellt Praktiken ist die Java-Paket-Architektur.
Kurz gesagt, können Sie Folgendes tun:
%Vor%Aktivitäten und Fragmente werden nicht als Ansichten klassifiziert, da sie Controller sind, aber sie behandeln auch die Ansicht, also fügen Sie ihre eigenen Pakete ein.