Architecture des données

CoreCore Membre
01:07 modifié dans Objective-C, Swift, C, C++ #1
Bonsoir ,

Je vais citer un exemple afin de de vous d'illustrer ma question.

Soit une application qui liste le contenu de CD-ROM et l'affiche dans une fenêtre (NSTableView par exemple)

J'aurais tendance a créer selon le modele MVC, une classe Model (nommé "content") dont l'instance représenterait le contenu d'un CD, une classe View pour gérer l'affichage et une autre Contoler pour gérer les actions utilisateurs.

Jusque la tout va bien, enfin je crois :)

Maintenant il nous faut gérer plusieurs contenus de CD ROM, donc créer un Array de "content"  et plus tard placer dans un fichier

Dans quelle classe convient il de placer ce fameux array ?? plutot dans le model , dans la view ??

Réponses

  • Eddy58Eddy58 Membre
    01:07 modifié #2
    Dans ce genre de situation, je gère l'array dans le controleur, dans ce dernier tu importes le fichier d'interfaçage de ta classe modèle pour avoir acces aux méthode d'initialisations et autres accesseurs. Ainsi, a partir du controleur, tu crées tes objets modèles que tu ajoutes ensuite dans ton array. Puis pour mettre à  jour ta gui, par exemple une table view, tu mets les data sources aussi dans le controleur, qui iront chercher leurs infos dans l'array. :)
  • CoreCore Membre
    01:07 modifié #3
    dans 1115927569:

    Dans ce genre de situation, je gère l'array dans le controleur, dans ce dernier tu importes le fichier d'interfaçage de ta classe modèle pour avoir acces aux méthode d'initialisations et autres accesseurs. Ainsi, a partir du controleur, tu crées tes objets modèles que tu ajoutes ensuite dans ton array. Puis pour mettre à  jour ta gui, par exemple une table view, tu mets les data sources aussi dans le controleur, qui iront chercher leurs infos dans l'array. :)


    C'est ce que j'ai fait "instinctivement" mais après avoir lu une doc Apple sur le MVC, j'avais quelques doutes....

    Merci bien !!
  • BruBru Membre
    01:07 modifié #4
    dans 1115927569:

    Dans ce genre de situation, je gère l'array dans le controleur


    D'un point du vue strictement objet, il faudrait normalement créer la classe "container" des objets "contents". Cette approche permet ainsi de gérer une collection de contenu de CD, de gérer les divers aspects liés au stockage de ces contenus vers une base/fichier, et de créer des "enumerator" afin de parcourir/parser le contenu.

    .
  • CoreCore Membre
    01:07 modifié #5
    Cele revient uniquement à  depacer l'Array dans la classe "container"

    ou y a t-il d'autre subtilités ou astuces à  connaitre sur ce type de classe ?
  • BruBru Membre
    01:07 modifié #6
    dans 1115972922:

    Cele revient uniquement à  depacer l'Array dans la classe "container"

    ou y a t-il d'autre subtilités ou astuces à  connaitre sur ce type de classe ?


    Oui, c'est cela (si tu désires utiliser un NSArray pour le stockage "physique" des contents en mémoire).

    Tu pourrais remplacer NSArray par une autre classe, ou une autre méthode de stockage (un tableau C dynamique par exemple) sans que le monde exterieur (ton contrôleur) ne soit affecté outre mesure, car c'est le "container" qui masque ça.

    .
Connectez-vous ou Inscrivez-vous pour répondre.