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

Design Patterns Discussion :

Hierarchie de classe


Sujet :

Design Patterns

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Hierarchie de classe
    Bonjour a tous,

    Débutant dans la Programmation, quelque chose me turlupine depuis quelque temps.
    J'ai commencé la programmation avec VBA (Visual Basic pour Application) sous Excel et sous Excel, les classes utilisent une hiérarchie sous la forme:

    Application : Une instance Excel.exe de l'application entière instanciable.
    ...Workbook : Une instance d'un classeur.
    ......Worksheet : Une instance d'une feuille de calcul.
    .........ListObject : Une instance d'un tableau.
    ............Range : Une instance d'une plage de cellule.

    Ici, la relation entre les objets n'est pas lié par l'héritage.(?)
    Application n'a potentiellement rien à voir avec Workbook (il n'y a pas de point commun), pourtant, à chaque fois que je fais des recherche sur des hiérarchies dans les applications, je retombe souvent sur la notion d'héritage.

    Pour expliquer un peu:
    Ici, la classe Application contient une propriété en lecture seule appelée "Workbooks" qui renvoie une instance de classe de type collection Workbooks. Réciproquement, la classe Workbooks renvoie une Instance de son Parent qui est Application.
    Cette classe Workbooks possède des Méthodes typique de classe de type Collection tel que Add, Item, Delete, _NewEnum (pour itérer) ...
    La propriété Item renvoie justement un Object de type compatible avec Workbook (qui est en fait un objet dérivée de Workbook), tandis que .Add fabrique un sous-type de Workbook.

    Et ainsi de suite, on peut voyager du sommet de la hiérarchie du modèle objet d'Excel en commençant de Application, puis en finissant par Range (ce n'est qu'un chemin parmi beaucoup d'autre) ou inversement, si on part d'un Range et que l'on veut remonter.

    Question:
    Quel est la manière la plus propre pour fabriquer ce genre de hiérarchie, parce que j'ai déjà fabriqué de tel hiérarchie (en plus petite) et il me manque quelque chose.
    Il faudrait que par exemple dans notre cas, la classe Workbooks puisse avoir des privilèges sur la classe Application pour que Application lui refile automatiquement son Instance de classe et que vise-versa, Workbooks fournisse son Instance à Application sans que les autres classes soient au courant de quoi que soit.
    Idem entre Workbooks et Workbook parce que Workbook devrai pouvoir utiliser des propriété en lecture seulement, mais la classe Workbooks devrai pouvoir transmettre les valeurs des propriétés Get sans que la classe Workbook expose une propriété Let/Set publiquement.

    J'utilise des Classes Abstaite en VBA avec des propriétés Set/Let pour transmettre les infos, parce que les propriétés implémentés au sein d'une classe sont privées (Genre pour l'exemple : IWorkbookSetProperty avec uniquement des propriétés Set et Let pour permettre une communication privée entre instance classe Object (Workbook) et Collection (Workbooks) pour l'exemple).

    Question:
    Quel est la voie officielle pour transmettre des Valeurs entre classe (tout en maintenant des propriétés Set privées) sans que les autres classes puisse être au courant de tel transfert d'informations ?

    Question:
    Comment s'appelle ces genres de design patterns ?
    Pattern qui permettent de conserver des Propriété Get en lecture seule sans exposer de propriété Set/Let public tout en permettant l'échange d'infos entre Objet/Collection et Parent/Enfant.

    Question:
    L'héritage n'est pas obligatoire pour créer des hiérarchies de classe dans les grandes applications ?
    Bien qu'ici, dans le cas d'Excel, les feuilles de calcul sont fortement typées (type Feuil1, Feuil2 ...) et dérivent de Worksheet, donc, la collection fabrique des objets dérivées qui hérite de Worksheet, donc il y a de l'héritage, mais c'est sur 1 niveau seulement.

    Le but serait d'utiliser une méthode de conception avancée (autre que comme en VBA) pour pouvoir créer des hiérarchies dans d'autres languages tel que le Visual Basic en utilisant des mécanismes de la POO (design pattern).


    En espérant ne pas avoir été trop long
    Merci d'avance.
    Dernière modification par Invité ; 26/10/2014 à 16h59.

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

Discussions similaires

  1. Hierarchie de classe pour Perl/Tk
    Par astrotouf dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 12/11/2007, 11h14
  2. [MFC] Hierarchie des classes MFC
    Par venomelektro dans le forum Visual C++
    Réponses: 2
    Dernier message: 20/03/2007, 17h27
  3. Réponses: 31
    Dernier message: 30/03/2006, 17h57
  4. [Language]Hierarchie de classe unique c'est quoi ?
    Par Le Pharaon dans le forum Langage
    Réponses: 1
    Dernier message: 16/09/2005, 18h58
  5. Pb de hierarchie de classe .
    Par Clad3 dans le forum C++
    Réponses: 14
    Dernier message: 22/01/2005, 13h07

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