IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

L'instanciation de la classe fille est IMPLICITE ?


Sujet :

Dotnet

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut L'instanciation de la classe fille est IMPLICITE ?
    Bonjour,

    Pouvez m'aider à comprendre le fonctionnement de POO suivant: Instanciation de la classe fille est-elle implicite?
    Car dans l'appplication MVC ASP.Net, par exemple, je trouve qu'aucun moment une classe fille typique n'est instanciée.

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class LoginController: Controller
    {
       public ActionResult Index()
       {
          .......
          return View();
        }
     
    }
    Bien sur que on veut bénéficier des méthodes, propriétés de la classe de base Controller. Ce sera effectif au moment d'instanciation.

    Imaginons que dans le contexte d'une application console: Certainement, tout sera dans la méthode void Main(), on va utiliser l'héritage de classe fille: très clairement j'instancie la classe LoginController, puis appelle la méthode Index()...

    Mais dans le contexte Asp.net MVC ici, quand précisément?? je ne trouve pas en fait l'instanciation de classe fille.

    1) J'imagine donc que l'instanciation de la classe fille LoginController est implicite (invisible dans le code), ce qui fait partie de la compilation de ASP.Net MVC ?

    2) Ma 2 ème question concernant la classe mère Controller. Je ne trouve pas non plus l'utilisation des méthodes de cette classe de base dans l'application MVC Asp.net?


    Merci beaucoup
    Van

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par vanstan Voir le message
    Mais dans le contexte Asp.net MVC ici, quand précisément?? je ne trouve pas en fait l'instanciation de classe fille.
    Et tu ne la trouveras pas. Dans le cas de MVC, l'instanciation des classes se fait via la réflexivité du langage. Chaque application MVC dispose d'un ControllerBuilder dont la tâche est d'instancier les contrôleurs lorsque cela est nécessaire, via une fabrique de controlleur. On peut d'ailleurs préciser la fabrique à utiliser via la méthode SetControllerFactory.

    Maintenant, une fabrique de controlleur est une classe implémentant l'interface IControllerFactory, qui définit notamment la méthode CreateController :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public IController CreateController(RequestContext requestContext, string controllerName)
    {
       IController controller;
     
       ...
       // Instanciation du controlleur via son nom contenu dans controllerName et le contexte de la requête.
       // L'implémentation par défaut fourni dans le framework MVC utilise la réflexion.
       ...
     
       return controller;
    }

    Le framework MVC fournit une implémentation par défaut qui couvre largement les besoins les plus usuels.

    Je t'invite à parcourir cet article de la MSDN qui t'aidera sans doute à comprendre le cycle de vie d'une requête, depuis le moment où elle est émise par un navigateur jusqu'à la réception de la réponse par ce dernier.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Merci beaucoup
    C'est bien la réponse que j'attends

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/04/2014, 00h16
  2. Instanciation d'une classe fille depuis une classe mère
    Par khaled-benloucif dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2009, 23h59
  3. Réponses: 2
    Dernier message: 14/09/2007, 08h55
  4. Instancier une classe fille
    Par adn013 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/08/2007, 10h48
  5. Réponses: 6
    Dernier message: 01/05/2006, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo