Package / Architektur

Generic1

Top Contributor
Hallo,

bin das erste mal zuständig für die Architektur eines Projektes (Klassen, Packageaufteilung). Mir ist klar, dass ein Package eine fachliche Gruppierung oder sogar eine Abbildung einer Domain ist.
Zugegriffen wird auf "das Package" bzw. auf Klassen des Packages über Schnittstellen, d.h. für mich mal Interfaces.
Ich bin gerade dabei für die Persistence ein Package zu definieren. Was mit jetzt nicht ganz klar ist, sind die Service und die DAO - Klassen auch in den einzelnen Packages gekapselt oder sind die Services in einem eigenen Packages.
Hintergrund der Frage ist der, dass ich mal gesehen habe, dass alle Services in einem Package waren und dieses Package dann im Spring Framework als Service- Package angegeben wurde.
Wie ist es eurer Meinung nach richtig?

lg
 

Generic1

Top Contributor
Aha. weiß jetzt nicht ganz ob die Frage so unverständlich oder schwierig ist?
Wie haltet ihr es generell, gruppiert ihr alles was zusammengehört in einem Package und erzeugt danach eine Schnittstelle zu der Funktionalität des Packages oder macht ihr das irgendwie anders?
Beste Grüße,
 
M

maki

Gast
Je nachdem, bei OSGi ist die Sache ganz klar, ansosnten so wie es Sinn macht bzw. wie man etwas ausdrücken möchte, generell sollte man die Interfaces cvon den Implementierungen trennen, deswegen müssen aber nciht alle Service Interfaces in ein einziges package.
 

Generic1

Top Contributor
So wie es sinn macht hör ich gerne ;-) wenn ich das in der Firma höre mach ich es immer wie ich es will un such mir eine vernünftige Argumentation.
Adam Bliem schreibt z.B.: das man die Zugriffs- Interfaces auf das Package immer im selbem Package haben soll, da die Interfaces ja auch zu der Fachlichkeit des Packages gehören.
Besten Dank für die Antwort,
 
M

maki

Gast
Adam Bliem schreibt z.B.: das man die Zugriffs- Interfaces auf das Package immer im selbem Package haben soll, da die Interfaces ja auch zu der Fachlichkeit des Packages gehören.
Wirklich... hast du da einen Link zu?

Adam Bien mag zwar ein Vertriebler/Trainer/Architekt für JEE sein, aber deswegen muss er nicht immer recht haben.
Interfaces von Implementierungen zu trennen ist schon seit sehr langem Best Practice und in OSGi Standard.
 

Generic1

Top Contributor
Ich schreibs dir am Abend, habs jetzt nicht da,
Da hätte ich aber noch eine Frage zur Trennung, wenn mein "Fachlichkeits- Package"
Code:
de.firma.projekt.persistance
heißt (in diesem Package werden alle Zugriffe auf die Datenbank gemacht),
wie kann dann das Package heißen in dem ich die Interfaces gebe bzw. gibt es ein Package in dem ich alle Interfaces reingeben, so in der Art:
Code:
de.firma.projekt.interface
oder so in der Richtung?
 
M

maki

Gast
Sieh es mal so:
Die ganze Fachlickeit wird über Interfaces definiert, implementierende Klassen sind ncihts weiter als "unwichtige & dreckige" Implementierungsdetails, deswegen kommt in [c]de.firma.projekt.persistance[/c] nur interfaces, die implementierungen nach [c]de.firma.projekt.persistance.impl[/c] oder gar [c]de.firma.projekt.persistance.internal[/c], ltzteres im Falle von OSGi, da werden *.internal.* Packages vom Client gar nciht gesehen.

Persönlich würde ich nie für alle Interfaces die mit Persistenz zu haben nur ein einziges Package verwenden.
 

Generic1

Top Contributor
Besten Dank, ich hab schon mal einen Überblick bekommen, wie du das siehst, was mir aber nicht ganz klar ist, warum ich die Interfaces nicht in das selbe Package stecke, dann habe ich ja wieder alles zerstreut, die Implementierung und die Interfaces, das bei OSGi ist mir klar, wenn die Implementierung versteckt wird, dann muss man die Interfaces von der Implementierung trennen, Ist das auch bei Projekten wie z.B.: meinem "stink normalem Projekt" üblich, das so zu machen?

Und eine zweite Frage bzgl der Persistance, ich dachte mir bis jetzt immer, ein Package für die Persistance damit man alles kompakt bei einander hat, wie (wie heißen die Packages z.B.) und warum trennst du die Persistance- Schicht auf?
 
M

maki

Gast
Ich trenne nciht die Persistenzschicht auf, sondern strukturiere die Packages, sont hätte man bei einer 3 Shcicht Anwendung nur 3 Packages ;)

Vereinfachtes Beispiel:

de.firma.project.presentation.product
de.firma.project.presentation.user

de.firma.project.business.product
de.firma.project.business.user

de.firma.project.persistence.product
de.firma.project.persistence.user

Und ja, bei OSGi (und Spring auch) macht man das immer so dass man die Interfaces von den Implementierungen trennt, in JEE Projekten sollte es imho auch so gemacht werden.

Wie gesagt, verstehe Adam Biens Aussage wohl nicht richtig, aber eigene packages für interfaces und deren Implementierung(en) sind nicht verkehrt.
 

Generic1

Top Contributor
OK, verstehe, wenn ich das Beispiel weiterführe, schaut's dann so aus!?
Code:
de.firma.project.presentation.product
de.firma.project.presentation.product.impl
de.firma.project.presentation.user
de.firma.project.presentation.user.impl

de.firma.project.business.product
de.firma.project.business.product.impl
de.firma.project.business.user
de.firma.project.business.user.impl

de.firma.project.persistence.product
de.firma.project.persistence.product.impl
de.firma.project.persistence.user
de.firma.project.persistence.user.impl
 
M

maki

Gast
OK, verstehe, wenn ich das Beispiel weiterführe, schaut's dann so aus!?
Code:
de.firma.project.presentation.product
de.firma.project.presentation.product.impl
de.firma.project.presentation.user
de.firma.project.presentation.user.impl

de.firma.project.business.product
de.firma.project.business.product.impl
de.firma.project.business.user
de.firma.project.business.user.impl

de.firma.project.persistence.product
de.firma.project.persistence.product.impl
de.firma.project.persistence.user
de.firma.project.persistence.user.impl
Ja, so in etwa.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JavaFX Warnung in package Zeile Allgemeine Java-Themen 2
jumichel Eclipse The package javax.mail is not accessible Allgemeine Java-Themen 3
M Mehrere Ressourcen in einem package ablegen Allgemeine Java-Themen 1
G Mac Package auslesen Allgemeine Java-Themen 17
F Reason: Missing Constraint: Import-Package: okhttp3.internal.http; version="0.0.0" Allgemeine Java-Themen 0
Tommy135 Input/Output Application aus Java package starten Allgemeine Java-Themen 2
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
T Plötzlich wird package nicht mehr gefunden Allgemeine Java-Themen 3
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
Sin137 Struktur der Klassen & Package Allgemeine Java-Themen 2
F Problem mit "package" Allgemeine Java-Themen 7
L Stack overflow bei einer endrekursiven Funktion (Anwendung: Spezialform des Package Merge) Allgemeine Java-Themen 4
D Classloader ohne Package Allgemeine Java-Themen 10
T Package durchsuchen Allgemeine Java-Themen 11
S leeres package obwohl inhalt da Allgemeine Java-Themen 53
S leeres Package nach neuinstallation des Pc Allgemeine Java-Themen 6
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
G Gleiche Packages in verschiedenen JAR Dateien - Welches Package wird verwendet? Allgemeine Java-Themen 5
D Package switching Allgemeine Java-Themen 7
G log4j package filter Allgemeine Java-Themen 10
M Klasse aus xyz.class Datei laden / package entfernen? Allgemeine Java-Themen 4
Bastifantasti Package installieren Allgemeine Java-Themen 2
J package javax.servlet does not exist Allgemeine Java-Themen 5
M Dateien aus dem Package im Jar-File rauskopieren Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
S Package in verschiedene Projekten einbinden? Allgemeine Java-Themen 3
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
B J-Unit Tests. Alle Tests eines Package einsammen. Allgemeine Java-Themen 4
ARadauer Package Struktur Allgemeine Java-Themen 3
G bild in package Allgemeine Java-Themen 6
G Klasse aus Package auslesen Allgemeine Java-Themen 13
V Alle Klassen eines Package auflisten? Allgemeine Java-Themen 6
G jfreechart probleme mit dem package? Allgemeine Java-Themen 2
E (einfaches) Problem mit import und package (export) Allgemeine Java-Themen 4
E Was ist "default package" in Eclipse konkret? Allgemeine Java-Themen 12
M diff package? Allgemeine Java-Themen 7
T auf Klasse in Default package zugreifen Allgemeine Java-Themen 10
G externe package Allgemeine Java-Themen 7
A Package Probleme Allgemeine Java-Themen 9
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
G Suche gutes Statistik Package Allgemeine Java-Themen 2
W Package via Reflection parsen Allgemeine Java-Themen 4
minzel ActionListener aus Package Allgemeine Java-Themen 24
P alle Klassen in package auflisten Allgemeine Java-Themen 2
M JNI: nach verschieben in package UnsatisfiedLinkError Allgemeine Java-Themen 3
D Laaaange Klassennamen und Package-Pfade. Allgemeine Java-Themen 5
J Einbinden einer protected-Methode aus anderem Package Allgemeine Java-Themen 2
H .java Dateien in anderem Package Allgemeine Java-Themen 8
S javadoc: package problem Allgemeine Java-Themen 3
G package und classpath grundsatzfrage Allgemeine Java-Themen 7
N Reflection: An Package einer .class-Datei kommen Allgemeine Java-Themen 2
T Problem: Ein Package für 2 Projekte? Allgemeine Java-Themen 3
S Problem bei Umstellung von (default package) auf Packages Allgemeine Java-Themen 10
H Package name aus Class-File auslesen Allgemeine Java-Themen 11
G Java Package Allgemeine Java-Themen 2
EagleEye klassen package problem Allgemeine Java-Themen 3
C Jakarta commons package downloaden und installieren Allgemeine Java-Themen 7
L Package und Klassenname von aufrufender Klasse holen Allgemeine Java-Themen 2
Z auf static Methode aus anderen Package zugreifen? Allgemeine Java-Themen 7
H Klassen in einem Package ermitteln Allgemeine Java-Themen 6
C Problem mit Package Allgemeine Java-Themen 9
L30nS Erste Schritte Multiplayer-Kartenspiel in der MVC-Architektur realisieren Allgemeine Java-Themen 1
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
O Architektur für Software Allgemeine Java-Themen 14
D Wie realisiert Ihr die Dreischicht-Architektur? Allgemeine Java-Themen 13
A OOP Architektur Problem Allgemeine Java-Themen 3
C MVC-Architektur Allgemeine Java-Themen 5
schlingel Plugin-Architektur - Welche nehmen? Allgemeine Java-Themen 6
J Model View Controller Architektur Allgemeine Java-Themen 6
eskimo328 Architektur, Fachliche oder Technische Trennung Allgemeine Java-Themen 18
U Sichtbarkeit von Klassen und gute Architektur Allgemeine Java-Themen 5
N Argumente für Plugin-Architektur Allgemeine Java-Themen 5
G Buch zur Komponentenentwicklun und SW-Architektur Allgemeine Java-Themen 3
egrath Info über VM Architektur Allgemeine Java-Themen 2
S Mögliche Architektur für ein System Allgemeine Java-Themen 7
J Frage zu Thread-Architektur Allgemeine Java-Themen 2
A Anwendungs-Design (Plugin-Architektur) Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben