best practise

steff3

Bekanntes Mitglied
das szenario ist folgendes:

in einer api wird dimension und color aus dem awt paket benutzt
es gibt aber umgebungen, dort steht dieses paket nicht zur verfügung

erster schritt, eigene klassen erstellen und alle methoden der api kopieren und mit den neuen klassen zur verfügung stellen
die methoden mit den awt klassen werden mit deprecated gekennzeichnet
ruft man diese in einer umgebung auf, die kein awt paket besitzt führt das zur classnotfoundexception

ist das ein guter weg?

für nutzer die gerne awt color benutzen stellt man in der eigenen color klasse einen konstruktor bereit, der ein awt color objekt erwartet

in umgebungen, die dieses paket nicht bereitgestellen wird auch kein nutzer auf die idee kommen den konstruktor ohne eigenes awt color objekt zu benutzen, so dass das nicht vorhanden sein der klasse zu keinen probleme führen sollte...
 
G

Gelöschtes Mitglied 5909

Gast
import java.awt.Color

reicht schon um ein Problem zu haben wenn es nicht da ist... ist das Java ME oder was?
 

ARadauer

Top Contributor
classnotfoundexception

ist das ein guter weg?
classnotfoundexceptions sind kein guter weg ;-) nur weil du die Methoden kopierst heißt das ja nicht, das deine Klassen nun die selben klassen sind...

es gibt aber umgebungen
von welchen umgebungen sprechen wir hier?

bei modernen Frameworks basieren eigentlich alle wichtigen Klassen auf interfaces, das heißt man hat oft die möglichkeit alternative Implementierungen zu benutzen...
bei awt ist das wahrscheinlich nciht so einfach...

also wenn du zb irgend eine lib die awt benötigt auf zb einem handy benutzen willst... seh ich schwarz... wirst wahrscheinlich nicht benutzen können.
 

Murray

Top Contributor
classnotfoundexceptions sind kein guter weg ;-) nur weil du die Methoden kopierst heißt das ja nicht, das deine Klassen nun die selben klassen sind...
Ich habe den TO so verstanden:
1. es gibt eine Library, die für bestimmte Aufgaben KLassen aus java.awt.* verwendet
2. diese Library wird auch auf Systemen verwendet, wo es diese Klassen nicht gibt
3. deshalb werden statt der java-awt.*-Klassen eigene definiert
4. für Verwender, die AWT-Klassen nutzen können/wollen, gibt es zusätzliche Methoden, die aus den AWT-Klassen die eigenen machen
5. vermutlich aus Kompatibilitätsgründe bleiben die alten Methoden als deprecated markiert im API, wer sie auf Systemen verwendet, die kein AWT können, wird zur Laufzeit ein Problem bekommen

So ganz falsch kann ich das Vorgehen nicht finden - wenn es auch einen gewissen Zielkonflikt zwischen 4. und 5. gibt
 
G

Gelöschtes Mitglied 5909

Gast
Nö, zur Laufzeit sind die Importe egal (weil sie im Bytecode überhaupt nicht vorhanden sind). Ein Problem gibt es zur Laufzeit nur dann, wenn die Klasse auch in irgendeiner Form verwendet wird.

Nicht zur Laufzeit, da hast du Recht, dafür aber zur Compilezeit. Ich woll zwar nicht auf meinem Handy kompilieren, aber:
auch wenn ich noch nicht mit Java ME gearbeitet habe, stell ich es mir generell schwer vor eine Anwendung mit J2SE zu compilen und dann auf gut Glück mit ME laufen zu lassen. Da fehlt mit Sicherheit noch ne Menge mehr als nur awt.
 

steff3

Bekanntes Mitglied
Ich habe den TO so verstanden:
1. es gibt eine Library, die für bestimmte Aufgaben KLassen aus java.awt.* verwendet
2. diese Library wird auch auf Systemen verwendet, wo es diese Klassen nicht gibt
3. deshalb werden statt der java-awt.*-Klassen eigene definiert
4. für Verwender, die AWT-Klassen nutzen können/wollen, gibt es zusätzliche Methoden, die aus den AWT-Klassen die eigenen machen
5. vermutlich aus Kompatibilitätsgründe bleiben die alten Methoden als deprecated markiert im API, wer sie auf Systemen verwendet, die kein AWT können, wird zur Laufzeit ein Problem bekommen

So ganz falsch kann ich das Vorgehen nicht finden - wenn es auch einen gewissen Zielkonflikt zwischen 4. und 5. gibt

perfekt nachvollzogen, genau so haben wir es jetzt auch umgesetzt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ameise03 Best&Worst Case bei Insertionsort Allgemeine Java-Themen 10
T Best Practice überprüfen von Übergabeparametern Allgemeine Java-Themen 17
S Best Practices CopyConstrutor mit ArrayList Allgemeine Java-Themen 1
S best practice: Einordnung Enitity und Datenklasse Allgemeine Java-Themen 11
temi best practice: Parameter überprüfen, wo? Allgemeine Java-Themen 9
Airwolf89 JUnit: Vorschläge/ Best Practice Allgemeine Java-Themen 7
F Error Logging - best practices? Allgemeine Java-Themen 3
M Best Practice: Daten aufnehmen-speichern-bereitstellen Allgemeine Java-Themen 8
H Best Practice zu vielen konstanten Objekten? Allgemeine Java-Themen 10
M Best Practices für Undo/Redo Allgemeine Java-Themen 16
G Best Practices Software-Engineering‏ Allgemeine Java-Themen 3
G Best Practices Allgemeine Java-Themen 10
F best practice Allgemeine Java-Themen 5
J Input/Output Dateien bearbeiten - "Best Practice" Allgemeine Java-Themen 3
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
R Statische Klasse: Best practice mit flags (2) Allgemeine Java-Themen 3
musiKk Best Practice für kleine Variationen in gegebenen Modellklassen Allgemeine Java-Themen 11
J Best Practice für implementierung von equals(...) Allgemeine Java-Themen 7
Daniel_L Best Practice zum Löschen von Log-Files? Allgemeine Java-Themen 8
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Best Match / Best Fit auf Strings Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben