Bonjour,
En fait je cherche un groupe d=E9di=E9 aux design pattern, si vous
connaissez =E7a m'int=E9resse.
J'ai besoin de cr=E9er une instance du m=EAme type qu'une variable dont
je ne connais pas le type.
Pour simplifier, prenons la classe abstraite Animal dont d=E9rivent
Dog et Cat.
qqe part dans une m=E9thode, j'ai :
void method (Animal animal){
// Il me faut une nouvelle instance du m=EAme type que Animal
Animal otherAnimal;
// Je sais que je peux =E9crire :
if (animal instanceof Dog)
otherAnimal =3D new Dog();
else if (animal instanceof Cat)
otherAnimal =3D new Cat();
}
Or nous savons tous que c'est ce qu'il ne faut pas faire. Je ne veux
pas rendre Cloneable la classe Animal parce que je ne veux pas une
copie mais vraiment une nouvelle instance toute neuve.
Merci pour votre aide,
Ghislain
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre-Charles David
Ghislain a écrit :
Bonjour, En fait je cherche un groupe dédié aux design pattern, si vous connaissez ça m'intéresse. J'ai besoin de créer une instance du même type qu'une variable dont je ne connais pas le type. Pour simplifier, prenons la classe abstraite Animal dont dérivent Dog et Cat. qqe part dans une méthode, j'ai : void method (Animal animal){ // Il me faut une nouvelle instance du même type que Animal
Cela suppose que toutes les sous-classes de Animal dont animal peut être instance fournissent un constructeur par défaut (sans paramètres). Il faut aussi gérer un certain nombre d'exceptions qui peuvent être levées par #newInstance().
Ghislain a écrit :
Bonjour,
En fait je cherche un groupe dédié aux design pattern, si vous
connaissez ça m'intéresse.
J'ai besoin de créer une instance du même type qu'une variable dont
je ne connais pas le type.
Pour simplifier, prenons la classe abstraite Animal dont dérivent
Dog et Cat.
qqe part dans une méthode, j'ai :
void method (Animal animal){
// Il me faut une nouvelle instance du même type que Animal
Cela suppose que toutes les sous-classes de Animal dont animal peut être
instance fournissent un constructeur par défaut (sans paramètres). Il
faut aussi gérer un certain nombre d'exceptions qui peuvent être levées
par #newInstance().
Bonjour, En fait je cherche un groupe dédié aux design pattern, si vous connaissez ça m'intéresse. J'ai besoin de créer une instance du même type qu'une variable dont je ne connais pas le type. Pour simplifier, prenons la classe abstraite Animal dont dérivent Dog et Cat. qqe part dans une méthode, j'ai : void method (Animal animal){ // Il me faut une nouvelle instance du même type que Animal
Cela suppose que toutes les sous-classes de Animal dont animal peut être instance fournissent un constructeur par défaut (sans paramètres). Il faut aussi gérer un certain nombre d'exceptions qui peuvent être levées par #newInstance().