# Modularisierung in Java



## GRantig (17. Feb 2008)

Hallo ich bins nochmals   

Modularisierung im Zusammenhang mit Java was genau ist denn da gemeint? wiki modularisierung ist sehr allgemein... kann mir da jemand Ratschläge geben?


----------



## Wildcard (17. Feb 2008)

Die Frage ist genau so allgemein


----------



## kEijuQ (17. Feb 2008)

schau dir packages an ...


----------



## Wildcard (17. Feb 2008)

kEijuQ hat gesagt.:
			
		

> schau dir packages an ...


Was soll ein Package mit Modularisierung zu tun haben? Ein Package ist lediglich ein Namespace.


----------



## GRantig (17. Feb 2008)

Wildcard hat gesagt.:
			
		

> Die Frage ist genau so allgemein



ich google: Java Modularisierung finde aber keine info... Ich hatte hier 6 seiten lesbar über die ist voll der Kaffee drüber und kann nichts mehr lesen... 

 :lol:


----------



## kEijuQ (17. Feb 2008)

... mit packages kann man auch "modular" programmieren ... @ wildcard, oder verstehe ich da was falsch?

btw:
wie wärs wenn du einfach selbst ne antwort geben würdest ? ^^

mfg.


----------



## Wildcard (17. Feb 2008)

kEijuQ hat gesagt.:
			
		

> ... mit packages kann man auch "modular" programmieren ... @ wildcard, oder verstehe ich da was falsch?


Ein package ist ein Namespace, ein technisches Konstrukt um Namenskonflike zu vermeiden. Ein Modul eine logische Einheit.
Da Modul aber ein sehr weiter Begriff ist, ist mir unklar, was der OP hören möchte.


----------



## Tobias (17. Feb 2008)

Ich muss Wildcard Recht geben. Die Frage ist nicht so gestellt, das man sie zielführend beantworten könnte.

mpG
Tobias


----------



## kEijuQ (17. Feb 2008)

ok  danke für die schnelle(n) antwort(en) ...


----------



## GRantig (17. Feb 2008)

Wildcard hat gesagt.:
			
		

> kEijuQ hat gesagt.:
> 
> 
> 
> ...


anders gestellt:

heißt MOdularisierung, dass ich Packages habe mit Klassen/Methoden die thematisch/funktionell miteinander verwandt sind?


----------



## Lim_Dul (17. Feb 2008)

Modularisierung bedeutung erstmal nichts anderes, als etwas in Modul aufzuteilen.
Das heißt, erstmal sollte der Begriff eines Moduls geklärt werden. Wirklich scharf kann man den nicht definieren, aber ich versuchs mal:

Ein Modul ist ein Bereich, der von andern Modulen thematisch getrennt ist und nur wenige, fest definierte Verknüpfungen mit anderen Modulen hat. Was das genau bei einem Programm nun ist, muss man immer anhand des jeweiligen Programms entscheiden.

Beispielsweise könnte man die CVS-Integration von Eclipse als ein Modul betrachten, das dafür zuständig ist den Workspace mit einem CVS-Server zu synchronisieren.

Als ein (und eigentlich auch das einzige wirkliche= Mittel zur Modularisierung in Java gibt es die Packages. Die erlauben es Klassen, die einen thematischen Zusammenhang haben zu gruppieren.


----------



## Wildcard (17. Feb 2008)

Lim_Dul hat gesagt.:
			
		

> Als ein (und eigentlich auch das einzige wirkliche= Mittel zur Modularisierung in Java gibt es die Packages. Die erlauben es Klassen, die einen thematischen Zusammenhang haben zu gruppieren.


Wenn wir hier nicht von einer sehr eigenwilligen Form von Modularisierung sprechen, haben Packages wie schon erwähnt nichts damit zu tun.
Welchen funktionallen Zweck erfüllt ein Package? Wie verändert sich das Klassendesign durch Packages?
Die gleiche Form der 'Modularisierung' erreichst du, wenn du sagst das alle Klassen die Mit Funktion A zu tun haben den Namenspräfix ModulA tragen. Ist mein Programm durch diese interne Konvention modularisiert? Ich denke nicht.


----------



## kEijuQ (17. Feb 2008)

Welche konkreten Möglichkeiten hat man dann eig. um modular zu Programmieren ? Klassen, Interfaces, (Packages) ?


----------



## Wildcard (17. Feb 2008)

kEijuQ hat gesagt.:
			
		

> Welche konkreten Möglichkeiten hat man dann eig. um modular zu Programmieren ? Klassen, Interfaces, (Packages) ?


Ebenso wie der OP, müsstest auch du näher spezifizieren was du als modular bezeichnest.


----------



## kEijuQ (17. Feb 2008)

naja lassen wir das ^^ kanns nicht näher spezifizieren ... ich werd dann konkret nochmal danach fragen wenn ich es brauche ... 

danke trotzdem


----------



## ARadauer (18. Feb 2008)

Ich verstehe unter modularisieren, das aufteilen meines Codes in fuktionale Einheiten (Module).
Und als mittel dazu sehe ich Klassen....


----------



## byte (18. Feb 2008)

Wildcard hat gesagt.:
			
		

> Welchen funktionallen Zweck erfüllt ein Package? Wie verändert sich das Klassendesign durch Packages?


Packages sind imo schon ein wenig mehr als ein Namespace. Marginal können Packages das Klassendesign ja insofern beeinflussen, dass es die Zugriffsbeschränkung _package-private_ gibt.


----------



## SnooP (18. Feb 2008)

Also Module sind in der Tat sehr schwammig definiert - packages sind eine sehr simple Möglichkeit der Strukturierung und bieten dem Entwickler aber nicht wirklich was - sie sind tatsächlich nicht viel mehr als ein Namensraum (wer benutzt schon package-private absichtlich?). 
Ich hätte eher an etwas ähnlich schwammig definiertes, wie Komponenten gedacht und sowas wie OSGI oder auch die Java Modules: JSR 277. Das nur so als Denkanstöße und Richtungsweisungen


----------



## Wildcard (18. Feb 2008)

@ARadauer
Klassen sind definitiv keine Module.
Prinzipiell ist ja auch klar was ein Modul ist, allerdings ist die Ebene auf der es betrachtet wird entscheidend.
Beispielsweise:
Ein Algorithmus als Modul
Ein XML Parser als Modul
Eine Persistenzschicht als Modul
Eine größere Funktionalität als Modul (in der Art eines OSGi Bundles/PlugIns)
Eine Software als Modul (SOA)

Wenn man sich im Team darüber unterhält das XY modular Aufgebaut sein muss, ist in der Regel durch den gemeinsamen Kontext klar was gemeint ist, wirft man die Frage jedoch einfach so zu fremden in den Raum, ist sie unscharf.


----------

