OVH Cloud OVH Cloud

problème de création d'objet

7 réponses
Avatar
Sylo
Bonjour,

Je travaille actuellement avec une application winform qui est interfacé
avec des services web

Cette application winform manipule des objets Produits.
Quand l'application crée une instance d'un produit, en fonction d'un
paramétrage, l'objet est soit créé en local, soit directement renvoyé via un
service web.

Ainsi, quand je crée l'instance d'un produit via un New(id_produit), soit
l'objet est créé dynamiquement dans le code en local (initialisation de
l'objet), soit on récupére durectement l'objet d'un service web.
C'est à ce moment la que je bloque. Quand je crée le produit via un new, je
voudrais récupérer le produit sans me soucier d'ou celui-ci vient. Hors si
le produit est cré via un service web, je n'ai pas besoin de faire un new
puisque l'instance existe déjà.

Donc je voudrais via le new de ma classe produit instancier l'objet en mode
local ou renvoyer l'instance renvoyée via le service web en mode connecté...

Comment faire

Sylo

7 réponses

Avatar
Fred
Dans : news:
Sylo écrit :
Bonjour,



Bonjour,

Donc je voudrais via le new de ma classe produit instancier l'objet
en mode local ou renvoyer l'instance renvoyée via le service web en
mode connecté...



Dans ce cas, je n'utiliserais pas le New mais, par exemple, une fonction
shared de la classe (GetObject), qui, selon le cas, crée une nouvelle
instance ou renvoie une instance existante.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Sylo
J'espérais trouver un astuce pour passer via le new mais je vois que cela ne
semble pas être possible
Je prend donc Le GetObjet
MErci bcp
sylo

"Fred" a écrit dans le message de news:

Dans : news:
Sylo écrit :
Bonjour,



Bonjour,

Donc je voudrais via le new de ma classe produit instancier l'objet
en mode local ou renvoyer l'instance renvoyée via le service web en
mode connecté...



Dans ce cas, je n'utiliserais pas le New mais, par exemple, une fonction
shared de la classe (GetObject), qui, selon le cas, crée une nouvelle
instance ou renvoie une instance existante.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Patrick Philippot
Sylo wrote:
Donc je voudrais via le new de ma classe produit instancier l'objet
en mode local ou renvoyer l'instance renvoyée via le service web en
mode connecté...



Dans ce cas, on utilise en général ce qu'on appelle une "class factory".
C'est une classe spécialisée dans l'instanciation d'autres classes. Elle
expose en général une méthode CreateInstance qui décide quel objet
instancier et comment. On peut aussi décider de faire de cette méthode
CreateInstance, une méthode statique (shared) de la classe à instancier,
sans créer une classe séparée.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Sylo
Je ne vois pas trop la différence entre le getobject que me propose Fred et
le classfactory que tu me propose. Est ce la même chose ou est ce une
nouvelle notion par rapport au classe ?
Merci
Sylo

"Patrick Philippot" a écrit dans le
message de news:
Sylo wrote:
Donc je voudrais via le new de ma classe produit instancier l'objet
en mode local ou renvoyer l'instance renvoyée via le service web en
mode connecté...



Dans ce cas, on utilise en général ce qu'on appelle une "class factory".
C'est une classe spécialisée dans l'instanciation d'autres classes. Elle
expose en général une méthode CreateInstance qui décide quel objet
instancier et comment. On peut aussi décider de faire de cette méthode
CreateInstance, une méthode statique (shared) de la classe à instancier,
sans créer une classe séparée.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Fred
Dans : news:uDm$
Sylo écrit :
Je ne vois pas trop la différence entre le getobject que me propose
Fred et le classfactory que tu me propose. Est ce la même chose ou
est ce une nouvelle notion par rapport au classe ?



C'est le nom de la technique. Je ne l'avais pas mentionné.
Patrick propose en plus de créer une classe dédiée si besoin.
Un lien :
http://www.microsoft.com/france/msdn/framework/20031016-exploration-modele-fabrique-classe.mspx

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Patrick Philippot
>> Je ne vois pas trop la différence entre le getobject que me propose
Fred et le classfactory que tu me propose. Est ce la même chose ou
est ce une nouvelle notion par rapport au classe ?



C'est le nom de la technique. Je ne l'avais pas mentionné.



Salut Fred.

Oui, Class Factory aussi le nom du "design pattern" correspondant à cette
approche. GetObject est plus lié à COM et OLE, à mon sens. Mais ce n'est
qu'une histoire de nomenclature.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Fred
Dans : news:u$
Patrick Philippot écrit :

Salut Fred.



Hello,

Oui, Class Factory aussi le nom du "design pattern" correspondant à
cette approche. GetObject est plus lié à COM et OLE, à mon sens. Mais
ce n'est qu'une histoire de nomenclature.



C'est juste. Soyons rigoureux (ce qui n'est pas mon fort).
Je m'en vais de ce pas «refactorer» mes classes (Vive VS 2005) :-)

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT