Wat is het nut van een Interface?

Status
Niet open voor verdere reacties.

dirkwillemgames

Gebruiker
Lid geworden
8 jan 2012
Berichten
8
Hallo, ik ben net aan java begonnen (via een omweg met C#), ik volg een tutorial van Oracle, begrijp alles, maar nu ben ik bij interfaces. Ik kan ze wel implementeren, maar ik vraag met af wat je er aan hebt. Het lijkt voor mij op het moment meer op een omweg oom een functie voor een object uit te voeren, maar het zal toch vast ergens goed voor zijn?

Alvast bedankt; DirkWillem
 
Hoe verder je komt met programmeren hoe meer je met abstractie lagen gaat werken.
Zelf ben ik nu bezig met een api core voor ons project te maken (doen we met 3 man). Hierin hebben we plugins zitten welke van het interfaces of abstract classes gebruiken. Het grootste voordeel hiervan is dat als een classe de interface implementeerd, je het op interface niveau kan aansturen.

voorbeeldje:

de interface
[cpp]

public interface Command{

int execute(int,int);
}

[/cpp]


een concrete class die de interface implementeerd
[cpp]
public class Add implements Command{


public int execute(int value1, int value2){
return value1 + value2;
}
}

[/cpp]


een andere concrete class

[cpp]
public class Multiply implements Command{

public int execute(int value1, int value2){
return value1 * value2;
}
}
[/cpp]


daadwerkelijk gebruik van de classes
[cpp]

public class Program{

public static void main(String[] args){

Command com1 = new Add();
Command com2 = new Multiply();
com1.execute(1,2);
com2.execute(2,3);
}
}
[/cpp]


is uit losse pols dus kan fouten bevatten.


Het grootste voordeel hiervan is dat je het op interface niveau kan aansturen en in de concrete classes de daadwerkelijke implementatie van de functie declareerd. Als je bijvoorbeeld een programma gemaakt hebt dat gebruik maakt van een webcam dan is het handig om daar een interface voor te schrijven die de meest basale functies beschrijft. Als je dan een nieuwe of andere type camera er aan wilt hangen hoef je hier alleen maar een losse classe voor te schrijven die aan de interface voldoet. Je hoeft dan verder niks meer in je code aan te passen op de declaratie van de interface na.
 
Laatst bewerkt:
Nu kan je ook dit doen niet zo bekend maar zeer handig

public class ikdoeietsmeer{

public int ikdoehet(Command value1){
return value1.execute(1,2);// hier komt dan tot nu onbekende functies in.
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan