Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question logique de programmation objet

5 réponses
Avatar
Etudiant
bonjour,
je viens de creer une classe personne. J'ai aussi un Base de donnee. Je
me demande quelle est la meilleur methode pour inserer une personne dans
ma base . En fait j'aimerais savoir si la logique veut que j'utilise la
methode new ou une methode Insert_Personne (par ex).Car en fait pour
l'instant je me sers de la methode New pour selectionne une personne ou
pour initialiser ma classe Personne a vide. J'ai surcharger la methode
New avec New() et New(IdPersonne).
A votre avis est ce que cette methode est bonne?

merci

5 réponses

Avatar
Zoury
Salut ! :O)

Je me demande quelle est la meilleur methode pour inserer
une personne dans ma base .



AMHA, il n'y a pas de *meilleure* méthode car tout dépend de l'architecture
que tu souhaites données à ton application, 2-tiers, 3-tiers, N-tiers,
etc...


A votre avis est ce que cette methode est bonne?



Oui. Je l'ai employé à plusieurs reprises dans des contextes clients-serveur
(archtecture 2-tiers) et ça fonctionne très bien en plus de rendre le code
lisible.

Au lieu de définir une méthode Insert_Personne() et une autre
Update_Personne(), pourquoi ne pas en faire qu'une seule et la nommée
Sauvegarder() ?
Tu tests si la clé primaire (supposons qu'elle définie automatiquement) à
été définie et appel la bonne procédure (interne) au besoin ce qui simplifie
grandement la programmation.


Dans le même ordre d'idée, connais-tu les classes collections ? Elle te
permettrait de gèrer simplement et uniformément un groupe d'objets du même
type.
Jète un oeil ici, le walktrough te montre comment implémenter une telle
classe :
http://msdn.microsoft.com/library/en-us/vbcon/html/vaconcreatingyourowncollectionclass.asp

--
Cordialement
Yanick
MVP pour Visual Basic

"Etudiant" a écrit dans le message de
news:
bonjour,
je viens de creer une classe personne. J'ai aussi un Base de donnee.En


fait j'aimerais savoir si la logique veut que j'utilise la
methode new ou une methode Insert_Personne (par ex).Car en fait pour
l'instant je me sers de la methode New pour selectionne une personne ou
pour initialiser ma classe Personne a vide. J'ai surcharger la methode
New avec New() et New(IdPersonne).

merci


Avatar
Fred
Dans son message
Zoury nous dit :

Salut ! :O)

Je me demande quelle est la meilleur methode pour inserer
une personne dans ma base .



AMHA, il n'y a pas de *meilleure* méthode car tout dépend de
l'architecture que tu souhaites données à ton application, 2-tiers,
3-tiers, N-tiers, etc...


A votre avis est ce que cette methode est bonne?



Oui. Je l'ai employé à plusieurs reprises dans des contextes
clients-serveur (archtecture 2-tiers) et ça fonctionne très bien en
plus de rendre le code lisible.

Au lieu de définir une méthode Insert_Personne() et une autre
Update_Personne(), pourquoi ne pas en faire qu'une seule et la nommée
Sauvegarder() ?
Tu tests si la clé primaire (supposons qu'elle définie
automatiquement) à été définie et appel la bonne procédure (interne)
au besoin ce qui simplifie grandement la programmation.


Dans le même ordre d'idée, connais-tu les classes collections ? Elle
te permettrait de gèrer simplement et uniformément un groupe d'objets
du même type.
Jète un oeil ici, le walktrough te montre comment implémenter une
telle classe :
http://msdn.microsoft.com/library/en-us/vbcon/html/vaconcreatingyourowncollectionclass.asp


"Etudiant" a écrit dans le message de
news:
bonjour,
je viens de creer une classe personne. J'ai aussi un Base de
donnee.En


fait j'aimerais savoir si la logique veut que j'utilise la
methode new ou une methode Insert_Personne (par ex).Car en fait pour
l'instant je me sers de la methode New pour selectionne une personne
ou pour initialiser ma classe Personne a vide. J'ai surcharger la
methode New avec New() et New(IdPersonne).

merci





Bonsoir,

Comme tu le dis, il n'y a pas de *meilleure* méthodes alors je propose
également celle que j'ai utilisée récemment dans une application du même
style.
J'ai mes classes 'Objet' d'un côté, et une classe accèsBDD de l'autre (en
fait c'est plus car il y a un service web entre les deux)
Plutôt que de faire un new qui risque de planter en cas de pb d'accès à la
base (ce qui peut ne pas être rare dans mon cas - internet et ses aléas),
j'ai une classe qui me fournit mes objets et un certain nombre de primitives
sous forme de méthodes 'shared'
Ainsi j'écris :
Dim MonObjet As Objet = AccèsBDD.RécupérerObjet(Id)

Il n'en reste pas moins que j'ai des méthodes style 'enregistrer' ou
'actualiser', dans ma classe Objet, mais elles font appel à ma classe
accèsBDD.

J'avais remarqué que ce procédé est utilisé dans certaines classes du
framework.

Et j'ai trouvé aussi cet après-midi cet exposé très intéressant, à propos de
méthodes de programmation :
http://www.microsoft.com/france/msdn/technologies/technos/framework/info/info.asp?mar=/france/msdn/technologies/technos/framework/info/20031016-exploration-modele-fabrique-classe.html
ou http://minilien.fr/a0jzts

(j'en profite pour soumettre ma méthode à la critique :-)

--
Fred
Avatar
Etudiant
le methode de zoury je l'ai aussi utilise. J'ai utilise un classe
personne et une classe connection. Vu que je travaillais avec sql server
ma classe connection avec comme parametre un tableau de variable et leur
valeur (@MaVariable), le nom de la procedure stockee et un boolean qui
me disait si je devait retourner une valeur (@@Identity par ex) ou un
dataset pour un SELECT.

donc je faisait pour selectionner une personne

TabParamValeur() = {"@Id",3}
MyDataset = connection.Execute(TabParamValeur,"Select_Personne",True)

ou pour un insert

ValeurRetour= connection.Execute(TabParamValeur,"Insert_Personne",False)

voila a+
Avatar
Etudiant
a quoi sa sert de declarer des methodes ou des propriete en Shared??
Avatar
Fred
Dans son message
Etudiant nous dit :

a quoi sa sert de declarer des methodes ou des propriete en Shared??



Bonsoir,
Sur l'exemple que j'ai donné, à priori, pas à grand chose :-)
Je l'ai fait par mimétisme.
Disons que c'est une méthode qui n'est pas attachée à une instance d'objet
particulière.
C'est aussi une méthode qui peut permettre de partager des informations pour
toutes les instances créées.

2 petits exemples :
Prend la classe IPAddress, du framework. Il y a une méthode Parse qui sert à
créer un objet IPAddress. Tu n'as pas besoin d'avoir une instance d'objet
pour l'utiliser. Tu peux écrire :
Dim MonIP As System.Net.IPAddress = System.Net.IPAddress.Parse("127.0.0.1")

Autre exemple :
Tu veux créer des objets qui ont une propriété Nom par exemple. Et que ce
nom soit initialisé par défaut avec objet1, objet2, ...
Tu peux dans ce cas utiliser une variable privée 'compte' shared que tu
incrémentes à chaque appel de new.
Ce qui donne dans le New :
compte += 1
Me.Nom = "objet" & compte.ToString

NB : Bien que cela ne soit pas utile dans cet exemple, tu peux aussi écrire
un shared new qui se charge d'initialiser compte.
(juste pour signaler que le new peut-être shared aussi)

Voilà ce qui me vient à l'esprit. De plus aguerris que moi en programmation
objet peuvent compléter.


--
Fred