Objekotorientiertes Programmieren / Lose Kopplung

GhostfaceChilla

Bekanntes Mitglied
Halo Leute ich habe eine Frage bezüglichd er losen Kopplung in Java. Aber zuerst etwas zu meiner Applikation:

Mein Programm
Mein Programm repräsentiert eine Art MediaCenter mit dem man Musik, Videos, Spiele etc. abspielen kann.Das Programm läuft auf einem Compuert auf dem nichts installiert ist bis auf dieses MediaCenter. Bedient wird es via Fernbedienung.

Struktur des Programmes
Das Progamm ist unterteilt in mehrere Views(Homescreen zum auswählen des Musik-,Video und Gamescreens. Musikscreen zum auswählen der Musik,Videoscreen und Gamescreen und MediaplayerScreen wo man dann die abgespielte Musik hört oder den abgespielten Film sieht) jeder dieser screens besitzt einen eigenen Controller. Dann gibt es noch die Fernbediung. diese besitzt für jede Taste die gedrückt werden kann eine eigene Klasse.

Mein Problem
Mein Problem ist nun folgendes. Habe ich nun im Musikscreen ein Objekt in der Datenabnk(Tabell angeklickt) welches abgespielt werden soll, muss dies an den MediaplayerController übergeben werden, damit dieser sich drum kümmern kann. Warscheins sollte dieses Objekt sogar eher noch an eine eigene Klasse Mediaplayer übergeben werden, damit ein neuer Mediaplayer initialisiert werden kann. Und da wäre auch das Problem, wenn eine Taste gedrückt wird z.B 'back' um auf den vorherigen Bildschirm zu kommen so müsste ich auch auf den aktuellen Controller zugreifen können um eine Methode aufrufen zu können. Mir ist ebwusst das dies auch alles über static Methoden geht aber ich finde da ist keine schöne lose Kopllung vorhanden.
Jetzt habe ich erfahren das das Springframework soetwas wie 'dependency injection' annbietet. Nun wäre meine Frage:
Ist das zu viel für mein vorhaben?Oder lohnt es sich trotzdem mit dem Springframework auseinander zusetzten. Und wenn ich benutzen soll ist es ja auch möglich nur die Komponenten zu benutzen die für 'dependency injection' benötigt werden wenn ich das richtig verstanden habe oder??
Danke für jede Hilfe :)

-GhostfaceChilla-
 

kaoZ

Top Contributor
Mein Problem ist nun folgendes. Habe ich nun im Musikscreen ein Objekt in der Datenabnk(Tabell angeklickt) welches abgespielt werden soll, muss dies an den MediaplayerController übergeben werden, damit dieser sich drum kümmern kann. Warscheins sollte dieses Objekt sogar eher noch an eine eigene Klasse Mediaplayer übergeben werden,

Ähnlich wie bei Games, würde ich ggf. einfach einen StateManager schreiben der alle States enthält
{VideoPlayer, MusikPlayer usw. usw.}

, und dann jeweils nur über einen setter den status des managers ändern, welcher dann den jeweiligen View zu dem aktuellen state anzeigt-

so könntest du ggf. auch anhand des datentyps aus der db, einfach schon den richtigen Player zur dateiendung starten / laden, und das dementsprechende layout / den view dafür setzen.
 
Zuletzt bearbeitet:

GhostfaceChilla

Bekanntes Mitglied
Ok, danke aber für das übergeben an den Controller habe ich jetzt soweit lösen können. Jedoch besteht noch immer das Problem mit den Tasten. Ich weis nicht wie ich einen Controller oder ein Objekt ansprechen soll. Meine Key Klassen sind unabhängig von allem anderen aber wenn ich jetzt play drücke sollte in einem MediaplayerController die Methode play() aufgerufen werde. Dies geht jedoch nur wenn ich vorher über eine static Methode den aktuellen Controller erfrage und dies ist ja kein allzu schöner Stil oder?

-GhostfaceChilla-
 

GhostfaceChilla

Bekanntes Mitglied
Ja,aber wie kann ich diese Methode aufrufen?
Die Klasse für den Playknopf heißt
Code:
PlayKey
und sagen wir die Controller Klasse der View heißt
Code:
MediaplayerController
.Wie kann ich ohne
Code:
statics
an die
Code:
play()
Methode in der MediaplayerController Klasse kommen?Ich möchte eigentlich alles statische soweit es geht vermeiden, da ich gehört habe das dadurch auch die relativ lose Kopplung verschiedener Komponenten flöten geht...

-GhostfaceChilla-
 

kaoZ

Top Contributor
Eine Möglickeit wäre eine Abstrakte basisklasse anzubieten

Java:
public abstract class Controller{

 public abstract void play();
}

und dann halt einfach jeweils eine spezialisierung anzubieten

Java:
public class VideoController extends Controller{

  @Override
   public void play(){

      //do some stuff
   }
}

angenommen du hälst nun eine liste der initierten controller in deinem Hauptcontroller
dann kannst du den jeweiligen controller setzen und dessen play methode aufrufen.

ginge natürlich auch mit einem Interface und abstrakter Basisklasse, oder auch nur mit einem Interface

Java:
class MusicState extends MediaState{

 @Override
 public void play(){...}
}

MusicState wäre dann hier eine Spezialisierung von MediaState welches z.B ein Interface Playable implementieren würde

sowas wie
Java:
public void setState(MediaState state){
 currentState = state;
}

und dann halt einfach :

Java:
public void play(){
  currentState.play();
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Programmieren als Angestellter Allgemeine Java-Themen 2
NoahPillich Navigations-App und Wegfindung selber programmieren - Erfahrungen, Ideen, Anregungen Allgemeine Java-Themen 6
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B hard wrap selber programmieren Allgemeine Java-Themen 9
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
Q Java-Programmieren Allgemeine Java-Themen 1
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
O wie kann ich p = s · (1 + r )^t-s programmieren? Allgemeine Java-Themen 7
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
J Vokabeltrainer programmieren Allgemeine Java-Themen 4
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
Q Möglichkeit Online-Programmieren üben. Allgemeine Java-Themen 9
B Schach programmieren Allgemeine Java-Themen 2
S Einfaches Programm programmieren Allgemeine Java-Themen 5
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
E Einen Bot Programmieren. Allgemeine Java-Themen 6
T Graph/Adjazenzliste programmieren Allgemeine Java-Themen 10
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
T Sprachsteuerung programmieren? Allgemeine Java-Themen 1
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
D Was als nächstes programmieren? Allgemeine Java-Themen 6
C Compiler programmieren Allgemeine Java-Themen 13
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
G Bot Programmieren Allgemeine Java-Themen 16
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
A Erste Schritte Die Kunst am Programmieren Allgemeine Java-Themen 20
S Captchas programmieren Allgemeine Java-Themen 6
J Java: Installer für Mods programmieren Allgemeine Java-Themen 5
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
A Update Software programmieren Allgemeine Java-Themen 1
G PC Fernbedienung programmieren Allgemeine Java-Themen 6
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
V Abwesenheitsliste programmieren - Ideen? Allgemeine Java-Themen 11
P KI für TicTacToe programmieren > Probleme Allgemeine Java-Themen 2
J (Java3D) Einen Faden programmieren - Logikproblem Allgemeine Java-Themen 5
M Android Programmieren Allgemeine Java-Themen 11
B Virtualisierung Programmieren Allgemeine Java-Themen 3
B Shortcut Erkennung programmieren Allgemeine Java-Themen 5
K Parallel programmieren mit ExecutorService Allgemeine Java-Themen 41
T Takuzu Spiel programmieren Allgemeine Java-Themen 4
L CSV Beziehungen programmieren Allgemeine Java-Themen 7
P wie logisch Programmieren? Allgemeine Java-Themen 6
K Programmieren anfangen. Allgemeine Java-Themen 21
J Problem mit Programmieren in Eclipse Allgemeine Java-Themen 5
E Klassen Mitgliederverwaltung programmieren Allgemeine Java-Themen 6
N Abkürzung STRG-G zu programmieren Allgemeine Java-Themen 4
P Java auf dem Handy programmieren Allgemeine Java-Themen 16
truesoul Sudoku programmieren Allgemeine Java-Themen 23
K sauber und schön programmieren Allgemeine Java-Themen 2
X Spiele für Handys programmieren Allgemeine Java-Themen 2
J Abbuchung vom Konto programmieren Allgemeine Java-Themen 6
P Fortgeschritten Java programmieren Allgemeine Java-Themen 2
J Dymnamische Programmieren. Allgemeine Java-Themen 4
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
D brauch hilfe ! bei Spiele Programmieren Allgemeine Java-Themen 5
F Autorennen programmieren Allgemeine Java-Themen 5
H Graustufe programmieren Allgemeine Java-Themen 7
M Intervall Programmieren ? Allgemeine Java-Themen 3
leifg Rekursiv mit Threads Programmieren Allgemeine Java-Themen 2
M Java Programm als Dämon Programmieren. Allgemeine Java-Themen 7
V Avatar selbst programmieren Allgemeine Java-Themen 4
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
G Was als fortgeschrittener Anfänger programmieren? Allgemeine Java-Themen 7
S grafisch programmieren aber nicht applets Allgemeine Java-Themen 13
W Spiel für Handy, normale GUI und Web programmieren Allgemeine Java-Themen 2
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
reibi Eclipse PlugIn selber programmieren Allgemeine Java-Themen 3
T einen SVN- oder QVCS-Client selber programmieren Allgemeine Java-Themen 2
saxman Lego Mindstorms Roboter mit Java programmieren Allgemeine Java-Themen 9
S eine farbpipette programmieren Allgemeine Java-Themen 7
V Mit Java einen Shop programmieren ? Allgemeine Java-Themen 8
M Mehrsprachig programmieren Allgemeine Java-Themen 3
S Programmieren eines Webwatchers Allgemeine Java-Themen 4
D Tainer programmieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben