Gegen Schnittstellen, NICHT gegen Implementierungen programmieren

Wenn Sie gegen eine Schnittstelle programmieren, schreiben Sie bspw. List list = new ArrayList(); anstelle von ArrayList list = new ArrayList();, oder definieren als Parameter und Attribute Ihrer Methoden und Klassen keine konkreten Implementierungen, sondern lediglich die Interfaces List, Set, Map, Collection, …. Dies hat den Vorteil der höheren Generalisierung und Kompatibilität, aber auch den Nachteil von fehlenden Methoden und Funktionsweisen konkreter Klassen.

via :http://www.java-blog-buch.de/0802-die-collection-schnittstelle/

The main reason to do this is to decouple your code from a specific implementation of the interface. By writing your code like this:
Map data = new HashMap();
then the rest of your code only knows that data is a Map, which is good, because it you can now easily change to a different implementation of interface Map if necessary. You’d only need to change that one line of code, for example to:
Map data = new TreeMap();
For the rest of your program, nothing changes – data is still a Map.
If you would have written:
HashMap data = new HashMap();
then changing it would have been much harder, because the rest of your code might have used methods that are specific to HashMap.

via: JavaRanch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.