Wann sollte man Generika verwenden?

Immer in ein wenig Verwirrung hier, Wann Generika:

Sagen, ich habe:

public class Honda implements ICar(){
}

public class Opel implements ICar(){
}

sollte ich verwenden:

public class Person{
    ICar car;
    .
    .
    public Person (ICar c){
        car = c;
    }
}

oder

public class Person<T extends ICar>{
    T car;
    .
    .
    public Person(T c){
        car = c;
    }
}

oder kommt es auf die Aufgaben durchgeführt?

EDIT: Also ist Generika nur für die aggregation Beziehungen (Behälter etc.)?

EDIT: Das könnte helfen:

Java Generics?

Denke ich bin ich Fragen, ist Generika nur für die Verwendung mit Sammlungen?

Kommentar zu dem Problem
Generika ist nicht nur für die Verwendung mit Sammlungen, obwohl es sicherlich spielt es die wichtigste Rolle. Es ist für überall, wo Sie wollen, um eine Objekt-Instanz oder Methode etc. arbeiten für eine bestimmte Art als das, was Sie entwerfen es für Sie, und überprüfen Sie während der Kompilierung (nur im Fall von Java) wenn Sie das Objekt mit dem richtigen Typ. Jedoch, Ihre Nutzung Fall nicht scheinen zu implizieren, dass die Art der Beziehung. Kommentarautor: Maarten Bodewes
Sie können verwendet werden, mit jeder Klasse, ein "nicht-so-gutes" Beispiel ist ein DAO framework, in dem alle konkrete DAO-Klassen erweitern eine GenericDAO<E, Pk> in interface/abstrakte Klasse. In diesem Modell jedes DAO ist verbunden mit der Person und der Primärschlüssel Arten und die konkreten Implementierungen Verhalten sich möglicherweise anders, abhängig von den tatsächlichen Werten für diese Parameter. Kommentarautor: Alonso Dominguez
@user997112 ich denke nicht so, wenn man sich die Collection-Klassen, Sie wurden entwickelt, um intern arbeiten mit generischen Typen und verwenden Sie Sie mit spezifischen Typen, wenn Sie Sie verwenden. Kommentarautor: Maarten Bodewes

InformationsquelleAutor der Frage mezamorphic | 2012-07-11

Schreibe einen Kommentar