Rôles listes (tech)

De Wiki1000
(Différences entre les versions)
(Nouvelle page : ===Introduction=== Un rôle liste est une association bidirectionnelle entre deux clases de multiplicité 0..1 dans un sens et 0..* dans l'autre. {{#images:role-liste.png|dsm/roles}...)
 
 
Ligne 7 : Ligne 7 :
 
*Accès
 
*Accès
  
Les rôles listes ont une propriété Refs[index] permettant d'accéder aux objets contenus dans le rôle :
+
Les rôles listes ont une propriété [[Refs (role)|Refs[index]]] permettant d'accéder aux objets contenus dans le rôle :
  
 
<source lang='delphi'>
 
<source lang='delphi'>
 
var idx:Integer;
 
var idx:Integer;
 
begin
 
begin
   for idx:=0 to inst.ClassBList.Count-1 do
+
   for idx:=0 to instA.ClassBList.Count-1 do
 
   begin
 
   begin
     instB := inst.ClassBList.Refs[idx];
+
     instB := instA.ClassBList.Refs[idx];
 
     ...
 
     ...
 
   end;
 
   end;
Ligne 25 : Ligne 25 :
 
var idx:Integer;
 
var idx:Integer;
 
begin
 
begin
   for idx:=0 to inst.ClassBList.Count-1 do
+
   for idx:=0 to instA.ClassBList.Count-1 do
 
   begin
 
   begin
     instB := inst.ClassBList[idx];
+
     instB := instA.ClassBList[idx];
 
     ...
 
     ...
 
   end;
 
   end;
Ligne 33 : Ligne 33 :
 
</source>
 
</source>
  
*Affectation
+
*Ajout d'objets dans la liste :
 
Différentes manièrs d'ajouter un objet à un rôle liste :
 
Différentes manièrs d'ajouter un objet à un rôle liste :
  
 
<source lang='delphi'>
 
<source lang='delphi'>
 
begin
 
begin
   instA.ClassBList.AdDRef(instA);
+
   instA.ClassBList.AdDRef(instB);
   instA.ClassBList.AddOID(instA.InstanceOID);
+
   instA.ClassBList.AddOID(instB.InstanceOID);
 
   ...
 
   ...
 
end;
 
end;

Version actuelle en date du 24 août 2009 à 18:10

Introduction

Un rôle liste est une association bidirectionnelle entre deux clases de multiplicité 0..1 dans un sens et 0..* dans l'autre.

role-liste.png

Utilisation

  • Accès

Les rôles listes ont une propriété Refs[index] permettant d'accéder aux objets contenus dans le rôle :

var idx:Integer;
begin
  for idx:=0 to instA.ClassBList.Count-1 do
   begin
     instB := instA.ClassBList.Refs[idx];
     ...
   end;
end;

ils disposent aussi d'une propriété par défaut en lecture seule :

var idx:Integer;
begin
  for idx:=0 to instA.ClassBList.Count-1 do
   begin
     instB := instA.ClassBList[idx];
     ...
   end;
end;
  • Ajout d'objets dans la liste :

Différentes manièrs d'ajouter un objet à un rôle liste :

begin
  instA.ClassBList.AdDRef(instB);
  instA.ClassBList.AddOID(instB.InstanceOID);
  ...
end;

L'affectation du rôle réciproque ajoute aussi l'objet dans le rôle :

begin
  // Ajoute l'objet instB dans le rôle instA.ClassBList
  instB.ClassARef := instA;
  ...
end;


Rôles (tech)Développement DSM





Whos here now:   Members 0   Guests 0   Bots & Crawlers 1
 
Outils personnels