Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Salut tout le monde,
J'ai un modèle UML (un diagramme de classes) qui a été implémenté en Java et que je voudrais reproduire en PB.
Le problème est qu'en Java, c'est beaucoup plus simple de traduire un diagramme de classes en classes Java en respectant les différentes relations entre les classes (héritage, composition, agrégation, association, ...).
Concernant PowerBuilder, j'ai pensé au début à utiliser des structures qui représentent les différentes classes du diagrammes UML, mais le problème est qu'une structure ne peut pas hériter d'une autre.
Alors j'ai essayé de travailler avec des users objects qui peuvent jouer le rôle des structures (les attributs des structures sont déclarés en tant que variables d'instances des users objects) puisque les users objects supportent l'héritage.
Mais là aussi il y a un problème, car après avoir créé les différents users objects, je dois créer dynamiquement des instances de ces users objects ce que j'arrive pas à faire :
si je fait une boucle for par exemple pour créer 10 instances du user objet uo_portefeuille:
//
for i=1 to 10
uo_portefeuille luo_portefeuille_i
==> malheureusement, ceci n'est pas faisable en PB pour les users objects alors que les structures permettent ça .
donc j'ai deux options:
* soit utiliser les structures et trouver un moyen pour traduire l'héritage entre elles.
* soit utiliser les users objects et trouver un moyen pour créer dynamiquement des instances de ces users objects.
Si j'arrive au bout de l'une de ces options, le problème serait résolu, enfin j'espère
Je m'adresse à vous tous pour me donner votre avis sur cette approche, vos conseils, des documents qui portent sur ce sujets, enfin, tout ce qui pourrait m'aider à trouver une issue à ce problème.
j'espère que j'ai bien expliqué mon problème.
Merci d'avance et bonne continuation.
PS : pour ce qui est de l'outil PowerAMC ou Power Designer, c'est pas vraiment la solution pour mon problème car d'une part le diagramme de classes n'est pas très compliqué et de l'autre je ne dispose pas de liscence pour travailler avec cet outil
Cordialement
Dernière modification par cannavaro (11-03-2008 14:35:54)
Hors ligne
uo_portefeuille luo_portefeuille[10] for i=1 to 10 luo_portefeuille[i] = Create uo_portefeuille next
NB : si ton objet uo_portefeuille est auto-instancié tu n'as pas besoin de la boucle avec les create...
Info sur la nomenclature :
* controle non visuel = custom class, nonvisualobject : n_objet / lnv_objet
* controle visuel = custom visual, userobject : u_objet / luo_objet
Tu ne pourras pas utiliser de structure pour représenter une classe, car les structures n'ont pas de méthode => il faut utiliser un nonvisualobject qui permet d'implémenter la plupart des mécanismes UML et OOP (héritage, encapsulation, surcharge, polymorphisme,...)
Hors ligne
Désolé mais ce n'est pas la solution que je cherche:
uo_portefeuille luo_portefeuille[10]
Car le nombre des users objects à créer n'est pas connu d'avance, il sera calculé au moment de l'exécution (at runtime)
ce que je voudrai faire est :
uo_portefeuille luo_portefeuille[nbr]
et ce nbr n'est pas connu d'avance
Et là malheureusement, PB n'accepte pas ça et n'offre pas cette possibilité.
Quelqu'un peut m'aider.
Merci d'avance.
Hors ligne
j'ai mis uo_portefeuille luo_portefeuille[10] car il y avait 10 instances à créer dans ton exemple...
pour un tableau à taille indéfinie : luo_portefeuille[] tout simplement
cannavaro a écrit:
Et là malheureusement, PB n'accepte pas ça et n'offre pas cette possibilité.
merci de rechercher dans l'aide en ligne
Hors ligne
Pour revenir à ta question initiale : OUI, Powerbuilder est un langage permettant une programmation orientée objet tout à fait classique...
http://www.rds.co.za/programming.htm
Hors ligne
Merci beaucoup Bug-Eradicator Jr., le problème est résolu alors
Bonne journée
Hors ligne
Merci d'ajouter [RESOLU] au titre de ce topic
Hors ligne
cannavaro a écrit:
Merci beaucoup Bug-Eradicator Jr., le problème est résolu alors
Bonne journée
à la bonne heure
Hors ligne
Pages: 1