Architektur von tv-browser?

Neue Plugins usw. Also alles was kein Problem/Verbesserungsvorschlag ist ;).
Antworten
Gonzo

Architektur von tv-browser?

Beitrag von Gonzo »

Moin!

Mich beschäftigt momentan die Frage, wie tv-browser eigentlich grundsätzlich aufgebaut ist. Das Problem dabei ist, dass ich vom coden eigentlich keineAhnung habe und daher aus den Quellcodes nicht wirklich schlau werde.
Mich würde z.B. interessieren, wie die einzelnen Module miteinander verknüpft sind, wie sie zusammenarbeiten, wofür sie zuständig sind, welches es überhaupt gibt etc.
Mir als Laie drängen sich Fragen auf wie "Welche Module/Klassen gibt es eigentlich?" oder "Welches Modul wird bei welchem Zugriff angesprochen?", sowas in der Art halt.
Einfach die Frage, wie man sich den grundsätzlichen Aufbau und die Arbeitsweise eigentlich vorzustellen hat bei einem solchen Java-Programm.
Ich habe jetzt zwar schon länger das Forum durchwühlt und die FAQ etc. gelesen, so richtig weiter geholfen hat mir das aber leider nicht :(.
Gibt es irgendwo eine graphische Übersicht oder eine Dummie-Erklärung die ich noch nicht gefunden habe oder könnte mir das jemand in etwa erklären?

Schönen Gruß
Gonzo
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von Til »

Also ich versuch mal eine kleine Übersicht zu liefern:

Ganz grob teilt sich TV-Browser in den TV-Browser selbst, in ein Utilities-Package, in Plugins und in TV-Datenservices. Diese Pluginschnittstelle ist recht gut im Handbuch beschrieben: http://wiki.tvbrowser.org/index.php/Tut ... va-Plugins und http://wiki.tvbrowser.org/index.php/Tut ... ataService

Im Utilities-Package befinden sich allgemeine in sich abgeschlossene Klassen, die sowohl für TV-Browser, als auch für Plugins interessant sein können, z.B. ein Download-Manager, ein Settings-Verwaltungs-System, diverse Hilfsklassen für die Oberfläche usw.

Die Plugin-Schnittstelle hat die Aufgabe, die Plugins vom eigentlichen TV-Browser abzugrenzen. Die Abhängigkeiten sollen damit minimiert werden.

Das Design von TV-Browser hat das Hauptziel, möglichst viel Funktionalität in Plugins auszulagern. So ist jede Funktion in sich gekapselt und leicht austauschbar bzw. entfernbar. TV-Browser selbst stellt also nur die Plattform.

Intern ist TV-Browser in zwei grobe Packages geteilt: core und ui. Also in Kernfunktionalität und Oberfläche.

Im core-Package haben wir sehr oft mit Singletons gearbeit. Jeder Singleton übernimmt eine Aufgabe: So gibt es die TVDataBase, die die TV-Daten auf der Platte speichert und wieder lädt und im Speicher cached. Es gibt den TvDataUpdate, der die Aktualisierung der Daten übernimmt, den TvDataSearcher, der die TV-Daten durchsuchen kann, den PluginManager, der die Plugins verwaltet usw.

Im ui-Package gibt es für jedes Gebiet ein unter-Package: Eins für die Programmtabelle, eines für den Einstellungen-Dialog, eines für den Konfigurationsassistenenten usw.

Soviel mal als Überblick in aller Kürze.
Gonzo

Beitrag von Gonzo »

Hi Til!

Schon mal vielen Dank für die Mühe und die schnelle Antwort, hat mich schon um einiges klüger gemacht das ganze ;).
Wo finde ich denn die Quellcodes von der Plugin-Schnittstelle oder ein Beispiel für so ein Singleton? Würde mich doch mal interessieren, sowas anzuschauen, aber ich werde da irgendwie nicht fündig :/.
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von Til »

Die Quellcodes kannst du von der TV-Browser-Seite herunterladen: http://tvbrowser.org/download_tvbrowser.php
Alte Versionen gibt es hier: http://sourceforge.net/project/showfile ... p_id=79472

Hier kannst du die aktuelle CVS-Version online ansehen: http://cvs.sourceforge.net/viewcvs.py/tvbrowser
Antworten