Je suis actuellement en utilisant mon usine comme ceci:modèle usine java question
public class AbstractFactory
{
public static AbstractHeader parseHeader(File file)
{
if(AFactory.canRead(file))return AFactory.parseHeader(file);
if(BFactory.canRead(file))return BFactory.parseHeader(file);
throw new UnsupportedOperationException("File ["+file+"] not supported");
}
public static AbstractContent parseContent(AbstractHeader h)
{
if(h instanceof AHeader){
return AFactory.parseContent((AHeader) h);
}
if(h instanceof BHeader){
return BFactory.parseContent((BHeader) h);
}
throw new UnsupportedOperationException("Header not supported");
}
}
le parseHeader() retourne une instance de l'une AHeader ou BHeader, et plus tard vous demandera le AbstractContent. Y a-t-il une meilleure manière de faire cela ? Sortir avec l'instanceof vérifie?
+1 à la réponse de Darron. Aussi, une question de style: AbstractFactory n'est pas abstrait, donc le nom est trompeur. –