Wann sollte ich Generika zum definieren von Beziehungen zwischen Arten?

Immer in ein wenig Verwirrung hier, Wann Generika. Ich habe Java Generics? aber noch ein paar Fragen.

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?

Sind Generika nur für die aggregation Beziehungen (Behälter usw.); das heißt, Sie sind nur verwendet für die Kollektionen?

  • 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.
  • 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> 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.
  • Ich glaube nicht, dass, so dass, wenn Sie einen Blick auf die Collection-Klassen, Sie wurden entwickelt, um intern arbeiten mit generischen Typen und verwenden Sie Sie mit spezifischen Typen, wenn Sie Sie verwenden.
InformationsquelleAutor mezamorphic | 2012-07-11
Schreibe einen Kommentar