J'ai une classe Request.csQu'est-ce que c'est? Méthode de modèle ou quoi?
Il a une méthode abstraite:
public abstract Response CreateResponse(XmlReader reader);
et il y a aussi une méthode:
public Response SendRequest(string requestURI)
{
...
XmlReader reader = XmlReader.Create(responseStream);
return CreateResponse(reader);
}
Le CreateResponse method
est mis en œuvre dans une sous-classe qui étend Request
. Et cette implémentation renvoie une réponse.
Je ne comprends pas comment vous pouvez retourner une méthode comme celle-ci qui est une méthode abstraite mais la valeur retournée est réellement dans l'implémentation de la méthode de la sous-classe. Est-ce un exemple du Template Method pattern ou simplement du polymorphisme simple, ou est ce code "rusé ou trop astucieux" ou même désordonné? J'essaie de comprendre comment cela peut même être fait (est ce principe de base OOP ou modèle de conception) et est-ce une bonne pratique ou une bonne utilisation de la POO?
Merci d'avoir confirmé cela pour moi. Jamais utilisé une méthode de modèle avant. – user72603