gegen (etwas) programmieren

G

Gast2

Gast
Hallo!

Ich lese gerade das Buch "Java und XML" von Scholz & Niedermeier. :rtfm:
Darin steht "gegen ein Interface programmieren "oder "gegen eine konkrete Klasse programmieren".

Was meinen die Autoren mit "gegen ... programmieren"?
Ich kann mir darunter nichts vorstellen. ???:L

Frank
 
M

Marcinek

Gast
Ich vermute mal die meinen ein Interface oder Klasse implementieren / abgleiten oder so Programmieren, dass deine Klasse von dem Interface oder der Klasse genutzt werden kann.
 

Noctarius

Top Contributor
Gegen ein Interface programmieren bedeutet, dass du, wenn eine Klasse ein Interface implementiert, du normal nicht gegen die konkrete Implementierung sondern gegen das Interface arbeitest.

Java:
// So!
List foo = new ArrayList();

// Statt so!
ArrayList foo = new ArrayList();
 
G

Gast2

Gast
Gegen ein Interface programmieren bedeutet, dass du, wenn eine Klasse ein Interface implementiert, du normal nicht gegen die konkrete Implementierung sondern gegen das Interface arbeitest.

Aha.
Aber was ist dann der Unetrschied zwischen der Implementierung und dem Interface,
wenn die Implementierung das Interface ist?

Frank
 

Michael...

Top Contributor
weiß grad nicht wie man das am besten "übersetzt".
Ich würde das mal als eine Referenz bzw. eine Verknüpfung über ein Interface oder eine konkrete Klasse herstellen.
Beispiel: Es existiert ein Interface Haustier, welches von der konkreten Klasse Hund implementiert wird.
Gegen ein Interface programmieren:
Java:
Haustier tier = new Hund();
Gegen eine konkrete Klasse programmieren:
Java:
Hund tier = new Hund();
Sofern in einem Kontext das Interface ausreichend ist, sollte man nach dem Minimalprinzip gegen das Interface programmieren.
 

Noctarius

Top Contributor
Das Interface ist ja nicht die Implementierung und die Implementierung ist nicht das Interface. Die Implementierung ist eine Möglichkeit eines Interfaces. Ein Interface darf aber beliebig viele Implementierungen haben.

Java:
List foo = new ArrayList();
List foo = new LinkedList();
List foo = new SomeOtherListImpl();

Der Vorteil ich kann Implementierungen irgendwo austauschen ohne überall die Klasse wieder auszutauschen, weil ansonsten nur gegen das Interface programmiert wurde. Das Interface bietet eventuell nicht alle Funktionen der einzelnen Implementierungen, aber alle Implementierungen bieten IMMER! alle Methoden des Interfaces.
 

Michael...

Top Contributor
S

Spacerat

Gast
Ganz wie Noctarius sagt... aber "gegen etwas" klingt dabei sehr abwertend. Es bedeutet nichts weiter, als das man ausschliesslich die Methoden und Konstanten des Interfaces zur Verfügung hat, während die implementierende konkrete Klasse noch andere Dinge zur Verfügung stellt en kann, die aber im Zweifelsfall nichts mehr mit dem Interface zu tun haben.
Auffällig wird das z.B. bei einem in dieser Hinsicht komplett verunglücktem AWT nebst allem, was darauf aufbaut oder überall dort, wo z.B. [c]String[/c] statt [c]CharSequence[/c] oder kurz eine konkrete Klasse statt ein Interface als Argument erwartet wird. Hätte man dort von Anfang an die Interfaces verwendet, müsste man sich heute weniger Gedanken um "Vererbung oder Delegation" machen.
Java:
interface Interface
{
  /* public abstract */ void doSomething();
}

class ImplOfInterface
implements Interface
{
  public void doSomething()
  {
    // DO SOMETHING, CAUSE YOU HAVE TO! ;)
  }
}
MAW.: Die Implementierung ist nicht das Interface sondern implementiert es nur. Ein Interface selber bietet keine konkreten (ausführbaren) Methoden an.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
C Reference - wird gegen meinen Willen - auf null gesetzt Java Basics - Anfänger-Themen 2
-horn- Strategie: Speichervorgang gegen unvollständiges Speichern absichern? Java Basics - Anfänger-Themen 11
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
O Neuen Blackberry 8800 oder Curve gegen kleines Programm Java Basics - Anfänger-Themen 9
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
L Was kann ich gegen "CMitarbeiterBeispiel has no main me Java Basics - Anfänger-Themen 5
F gegen interfaces programmieren Java Basics - Anfänger-Themen 6
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
S Möglichkeit, mit g.draw etwas vor ein JTextfield zu „zeichnen“? Java Basics - Anfänger-Themen 7
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
D Etwas unsicher wie es weitergehen soll Java Basics - Anfänger-Themen 2
I In der Mitte eines Frames mit BorderLayout etwas malen Java Basics - Anfänger-Themen 7
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
O Etwas auf der Konsole ausgeben, usw. Java Basics - Anfänger-Themen 22
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Input/Output Prüfen wie oft etwas eingegeben wurde Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
O Klassen etwas Bruchrechnern Java Basics - Anfänger-Themen 5
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
D Etwas speichern Java Basics - Anfänger-Themen 5
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
J Etwas dauerhaft überprüfen, wie ? Java Basics - Anfänger-Themen 8
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
S Komponente sagen, sie soll etwas tun Java Basics - Anfänger-Themen 3
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
S 0 wird negativ, wenn sie mit etwas negativen multipliziert wird. Warum? Java Basics - Anfänger-Themen 4
Binary.Coder Vor und nach jeder Codezeile etwas einfügen Java Basics - Anfänger-Themen 3
A Wie kann man etwas von Typ Image wieder löschen? Java Basics - Anfänger-Themen 7
G vor String etwas anhängen Java Basics - Anfänger-Themen 2
D Attributen und Methoden, etwas vergessen? Java Basics - Anfänger-Themen 6
T TCP, Empfang nur wenn wirklich etwas kommt Java Basics - Anfänger-Themen 6
F Etwas bestimmtes löschen Java Basics - Anfänger-Themen 13
N prüfe ob etwas in einer Matrix steht... Java Basics - Anfänger-Themen 14
S etwas schierige Ausgabe mit Systemout Java Basics - Anfänger-Themen 5
G Methode, die etwas hochzählt Java Basics - Anfänger-Themen 6
U etwas aufaddieren... acc. Java Basics - Anfänger-Themen 12
T Etwas an paint()-Methode übergeben? Java Basics - Anfänger-Themen 6
T RandomAccessFile - Wie schreibe ich etwas in eine txt Datei? Java Basics - Anfänger-Themen 5
G etwas is falsch? Java Basics - Anfänger-Themen 10
S Compile zu etwas Ausführbarem Java Basics - Anfänger-Themen 4
X Wie save ich etwas? Java Basics - Anfänger-Themen 6
R etwas andere for schleife Java Basics - Anfänger-Themen 2
G die etwas andere suche! Java Basics - Anfänger-Themen 22
M Über einen Button etwas zeichnen lassen Java Basics - Anfänger-Themen 5
L URL aufrufen und per get etwas übergeben Java Basics - Anfänger-Themen 6
K Einer Methode etwas zuweisen Java Basics - Anfänger-Themen 22
N aus einer file etwas auslesen. Java Basics - Anfänger-Themen 2
T Aus Klasse "B" in Klasse "A" etwas tun? Java Basics - Anfänger-Themen 8
G Programme etwas machen lassen. Java Basics - Anfänger-Themen 4
B Etwas in der konsole ausgeben ? Java Basics - Anfänger-Themen 7
G Programm soll nach bestimmter Zeit etwas tun Java Basics - Anfänger-Themen 24
B KeyListener (etwas bewegen) Java Basics - Anfänger-Themen 10
P Textdateischreiben, etwas fehlt noch bzw. 1 error kommt Java Basics - Anfänger-Themen 4
H in Textdateien etwas schreiben bzw. speichern Java Basics - Anfänger-Themen 2
D In String etwas einfügen. Java Basics - Anfänger-Themen 2
B Irgend etwas ist merkwürdig! brauche hilfe Java Basics - Anfänger-Themen 16
D Mein kleines Programm etwas schöner machen :-) Java Basics - Anfänger-Themen 13
G Gibt es so etwas wie eine Textfeldgruppe? Java Basics - Anfänger-Themen 2
R Dem Textfeld einer Internetseite etwas übergeben Java Basics - Anfänger-Themen 6
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben