Objekte m. versch. Interf. dynamisch erzeugen

Status
Nicht offen für weitere Antworten.

HighFish

Mitglied
Hallo,

hat hier vielleicht jemand zu folgendem Problem eine Lösung?

Bei meinem aktuellen Projekt, einer Art Patientendatenverwaltung, habe ich eine bisher für mich nicht lösbare technische Schranke zu überbrücken:
Es existieren ca. 30 verschiedene Patientendaten, welche über ein oder mehrere Interfaces angesprochen werden sollen, davon existieren bisher fünf, aber es ist durchaus nicht ausgeschlossen, dass noch weitere hinzukommen. Die Interfaces können in jeder erdenklichen Kombination auftreten, d.h. ich muss im Extremfall 30 verschiedene Klassen für alle erdenklichen Interfacekombinationen schreiben, in der Praxis kann ich diesen Wert auf vielleicht 10 senken, was mir immer noch zu viel ist. Kennt jemand eine Möglichkeit wie ich Objekte mit beliebigen Interfaces zur Laufzeit erzeugen kann?

MfG,

M.W.
 
B

Beni

Gast
  • Wieso nicht einfach eine Klasse Patient, die alle Interfaces gleichzeitig implementiert? Wenn man A, B, C implementiert, hat man auch gleich die 7 Kombinationen (A) - (B) - (C) - (A, B) - (A, C) - (B, C) - (A, B, C) geschrieben.
  • Also wenn diese Interfaces klar getrennt sind, kannst du die Patienten vielleicht wie "Behälter" aufbauen:
    Anstelle von diesem:
    Code:
    public class Patient implements A, B, C, D, E, F, G

    Dieses hier:
    Code:
    public class Patient{
      private A a = null; 
      private B b = null;
      [...]
    
      public A getA(){ return A; }
      public void setA( A a ){ this.a = a; }
    }

  • Oder vielleicht was mit Delegates:
    Code:
    public class Patient implements A, B, C, D, E, F, G{  // alle bekannten Interfaces
      private A delegateA = null;
      private B delegateB = null;
    
      [...]
    
      public boolean doSomethingOfA( int x ){
        return delegateA.doSomethingOfA( x );
      }
    }
  • Vielleicht ist auch das Design komisch, und man kann es mit weniger Interfaces lösen.
 

HighFish

Mitglied
Vielen Dank für Eure Tips, trotzdem habe ich dass Projekt gerade gekippt und greife voller Trauer zu Visual C++...
 

Grizzly

Top Contributor
HighFish hat gesagt.:
Vielen Dank für Eure Tips, trotzdem habe ich dass Projekt gerade gekippt und greife voller Trauer zu Visual C++...
Ich programmiere ja jetzt schon seit einiger Zeit OO. Aber von so einem Problem hab' ich noch nie etwas gehört. Warum soll ein Patient mehrere Interfaces haben bzw. soviele? Mir ist der Sinn dahinter irgendwie nicht klar. :bahnhof:
 
M

macfreakz

Gast
naja! Java KANN eigentlich fast ALLES, was es der Datenverarbeitung angeht!!!

Du, sollst mal dein Design überarbeiten. So viele Interfaces für ein Objekt habe ich noch nie gesehen!
 

HighFish

Mitglied
Es ist durchaus möglich, dass ich falsche Designentscheidungen getroffen habe, aber nach einer Reanalyse kristallisierte sich heraus, dass wir uns bei den Arztpraxen zu > 90% mit Windows-PC's herumschlagen müssen. Das das Programm grafisch eher aufwändig werden wird, habe ich mich nun nach längerer Prototypenentwicklung gegen Java entschieden, da Swing schlicht und einfach nicht leistungsfähig bzw. die Leistung nicht in vernünftiger Zeit realisiert werden kann.

Warum mehrere Interfaces?

Patientendaten können folgendes sein:
  • String
  • Datum
  • Enumeration
  • Bool
  • Integer
  • Double
  • Document
  • Zusammengesetzte Objekte

Patientendaten können folgende Funktionalität haben:
  • Observer
  • Observable
  • Restricted - d.h. mit festem Eingabebereich
  • Measured - mit Maßeinheit
  • MultipleMeasured - mit x Maßeinheiten (umrechnung)

Das alles muss über ein Über-Interface angesprochen werden da x versch. Algorithmen für y versch. Risiken auf die Daten angewandt werden können.

Eigentlich habe ich den Job nur unter der Prämisse angenommen das ich mich in Java einarbeiten kann (ca. 1 Jahr Java-Erfahrung) muss aber jetzt erkennen, dass JAVA schlicht und einfach das falsche Tool für dieses Projekt.
 

Isaac

Bekanntes Mitglied
Sorry, ich mache den ganzen Tag nichts anders als C++ Code nach Java zu portieren und oft auch andersrum. Es gibt nichts das man in C++ machen kann was man nicht auch in Java machen könnte. Eine Ausnahme gibt es, das ist die Treiberentwicklung. Aber hier muss man klar sagen das Java dafür eben auch nicht gemacht ist. Es würde der Philosophie wiedersprechen. Wenn die Swing zu langsam ist nutze SWT, das sind nur widgets und zeichnen sich nicht komplett selbst.

Das hat auch garnichts mit Java zu tun. Das obige gilt auch für Visual Basic, Pascal und die 100 anderen Programmiersprachen da draussen (abgesehen von den extrem zweckspezifischen Sprachen wie z.b. VHDL)


Würde mich mal interesieren wie du das in C++ gelöst hast. Vieleicht wird dein eigentliches Problem auch durchsichtiger.
 

HighFish

Mitglied
Hmm, ich sprach von der Leistungsfähigkeit von Swing, nicht von der Performance. Es macht halt deutliche Unterschiede ob ich für die Oberflächenentwicklung einer Form (man erlaube mir diesen Ausdruck für JPanel) acht oder eine halbe Stunde brauche.
Warum SWT? Damit entscheide ich mich genauso gegen Plattformunabhängigkeit als würde ich das Projekt in C++/C# umsetzen.
Der Unterschied zwischen der jetzt geplanten Version auf .NET-Basis und dem Java-Prototyp liegt in der herangehensweise: da ich in Visual Studio, für meinen Geschmack, eine bessere Unterstützung für die UI vorfinde werde ich das Projekt in Top-Down-Manier entwickeln d.h. ich kann ein paar der Interfaces weglassen, da ich z.B. eine Überprüfung des korrekten Eingabebereichs auch direkt über die GUI machen kann.
Java ist in vielen Belangen sicher die z.Zt. beste Programmiersprache (in C# muss ich mich gerade einarbeiten, deshalb kann ich darüber noch nichts sagen), aber die GUI-Entwicklung ist halt doch sehr lästig.
 

Grizzly

Top Contributor
Irgendwie werde ich das Gefühl nicht los, dass Du ein Programmieranfänger bist. Wie Du die Interfaces verwenden möchtest, kommt mir sehr merkwürdig vor: Ich habe noch nie gesehen, dass das Wertebereich eines Objektes über ein Interface geregelt wurde.

Was Du an der Leistungsfähigkeit bzw. am Leistungsumfang der Swing auszusetzen hast, verstehe ich nicht (bei der Perfomance hätte ich es eher verstanden ;) ).
Die SWT gibt es übrigens auf so ziemlich jeder Plattform, auf der es auch die Swing gibt.

Du solltest Dir vielleicht mal den JBuilder von Borland anschauen. Der dürfte Deinen Anforderungen entsprechen. Oder Du installierst Dir Eclipse und das Visual Editor PlugIn.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
MiMa Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
OnDemand Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4
T ObjectInputStream - Arrayliste, die unbekannte Objekte enthält Allgemeine Java-Themen 9
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
D Grafische Objekte zeichnen Allgemeine Java-Themen 4
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
F Referenzen auf Objekte Allgemeine Java-Themen 5
H Eclipse und Objekte Allgemeine Java-Themen 6
S Objekte die Objekte enthalten: Keine Vererbung Allgemeine Java-Themen 4
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
I Über eine Liste iterieren und Objekte löschen. Wie löst man das sauber? Allgemeine Java-Themen 5
I Pattern zum Erweitern existierender Objekte Allgemeine Java-Themen 4
N Dynamische Objekte / DB Allgemeine Java-Themen 5
J Objekte binär speichern Allgemeine Java-Themen 10
TiME-SPLiNTER Unbekannte Anzahl serialisierter Objekte lesen Allgemeine Java-Themen 2
V Objekte in Kategorien einteilen. Allgemeine Java-Themen 6
M 3D Objekte mit einer Linie Verbinden Allgemeine Java-Themen 3
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
W Objekte speichern mit JFileChooser Allgemeine Java-Themen 8
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
L Objekte in Liste packen Allgemeine Java-Themen 2
S XML in Objekte wandeln. Euer Rat? Allgemeine Java-Themen 12
G Objekte serialisieren Allgemeine Java-Themen 2
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
S Objekte mit Arrays Allgemeine Java-Themen 9
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S erzeugte objekte zählen Allgemeine Java-Themen 3
U auf Objekte mit variablem Namen zugreifen Allgemeine Java-Themen 4
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7
E tiefe Kopie nicht serialisierbarer Objekte Allgemeine Java-Themen 3
J Speicherbedarf und persistente Objekte Allgemeine Java-Themen 4
J ArrayList Objekte anhand Propertywerte filtern Allgemeine Java-Themen 3
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
J Eindeutige ID für Objekte als Keys in TreeMap Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben