Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2119 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

PHP objet alloudi les pages ?

n°1324493
nargy
Posté le 13-03-2006 à 19:49:18  profilanswer
 

Reprise du message précédent :
Si tu n a aucun héritage, c est pas de la programmation objet, c est similaire à un script utilisant des arrays (concept, maintenance, performance).

mood
Publicité
Posté le 13-03-2006 à 19:49:18  profilanswer
 

n°1324613
Djebel1
Nul professionnel
Posté le 13-03-2006 à 22:33:09  profilanswer
 

mais qu'est ce que tu  veux que j'hérite quand j'ai un objet contenant des méthodes de stockage, d'analyse, et d'insertion dans une bdd, toutes utilisées dans le même script et uniquement dans celui-ci ^^
 
Et on a jamais dit que c'était mal de faire de l'héritage. Juste qu'on concevait pas nos classes en fonction d'un affichage.


Message édité par Djebel1 le 13-03-2006 à 22:34:28
n°1324727
masklinn
í dag viðrar vel til loftárása
Posté le 14-03-2006 à 00:24:47  profilanswer
 

nargy a écrit :

Si tu n a aucun héritage, c est pas de la programmation objet.


C'est une blague?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1324757
Djebel1
Nul professionnel
Posté le 14-03-2006 à 03:31:50  profilanswer
 

ha oui j'aurais pu le dire comme ça aussi ^^

n°1324805
Berceker U​nited
PSN : berceker_united
Posté le 14-03-2006 à 09:53:31  profilanswer
 

nargy a écrit :

Si tu n a aucun héritage, c est pas de la programmation objet, c est similaire à un script utilisant des arrays (concept, maintenance, performance).


tu peux faire un objet sans héritage par contre il ne faut pas faire toute une application en objet sans qu'il y ait d'heritage. S'il y a heritage de façon liniaire ça ne sert à rien.

n°1324855
souk
Tourist
Posté le 14-03-2006 à 10:35:50  profilanswer
 

Berceker United a écrit :

il ne faut pas faire toute une application en objet sans qu'il y ait d'heritage

ah ? [:pingouino] et pour quelle raison ? on va en enfer si jamais on fait ca ? [:dawa]

n°1324858
kadreg
profil: Utilisateur
Posté le 14-03-2006 à 10:38:58  profilanswer
 

Berceker United a écrit :

il ne faut pas faire toute une application en objet sans qu'il y ait d'heritage.


 
Conceptuellement, je vois pas ce qui l'empêcherais. Néanmoins, on sens que dans la vraie vie, ce type de cas ,'arrive jamais :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1324869
Berceker U​nited
PSN : berceker_united
Posté le 14-03-2006 à 10:47:16  profilanswer
 

souk a écrit :

ah ? [:pingouino] et pour quelle raison ? on va en enfer si jamais on fait ca ? [:dawa]


Oui tu brulera dans les flammes du nawak :D.  
Dans le "il ne faut pas" je voulais dire par là que c'est null de dev ainsi et puis quand j'y pense en vb il y a pas de notion d'héritage  :sarcastic:

n°1324870
omega2
Posté le 14-03-2006 à 10:49:04  profilanswer
 

L'héritage, il ne faut l'utiliser que quand on en a besoin.
Je ne vois pas l'intéret de rajouter un coup d'héritage juste pour dire "a oui, mais il en faut toujours un peu dans une application".
 
C'est vrai en général, on a toujours des éléments pouvant hérité d'une classe comune, mais il peut aussi arriver que ca ne soit pas le cas, notament dans les petites applications.

n°1324882
Berceker U​nited
PSN : berceker_united
Posté le 14-03-2006 à 11:03:31  profilanswer
 

omega2 a écrit :

L'héritage, il ne faut l'utiliser que quand on en a besoin.
Je ne vois pas l'intéret de rajouter un coup d'héritage juste pour dire "a oui, mais il en faut toujours un peu dans une application".
 
C'est vrai en général, on a toujours des éléments pouvant hérité d'une classe comune, mais il peut aussi arriver que ca ne soit pas le cas, notament dans les petites applications.


Oui je suis daccord avec toi. Il ne faut pas que cela devienne systematique. Je me rappelle a mes debut dans les mêmes periode que l'autre developpeur qui faisait une classes gros papa de 3 kilo  lignes (voir plus haut) . Dans la boite il y avait une idée qui était que une application en objet devait au final hérité d'une meme classe. En gros que c'était un arbre. Il peut y avoir une classe pour gérer les fichiers/repertoires et une classe qui gere les acces a une db ben si tu remontais les classes qu'elles héritaient il avait une classe commune au final alors que l'acces à la db et la gestion des fichiers n'ont pas de rapport. En gros les classes était forcement issus de la meme famille La reine quoi :D.
 

Spoiler :

Non laissez moi j'ai honte de mon passé  [:ciler]


 
Pour ceux qui se pose la question de "a quel moment j'hérite" "a quel moment il y a message" il y a deux chose à ce dire :
Est un , A des.
 
Un repertoire est un fichier d'un type particulier : La classe Repertoire hérite de la classe fichier
Un repertoire a des fichiers : Il y a une liaison entre la classe Répertoire et la classe fichier. Néanmoin elle (repertoire) hérite toujours de la classe fichier.

mood
Publicité
Posté le 14-03-2006 à 11:03:31  profilanswer
 

n°1324940
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 11:56:00  profilanswer
 

Berceker United a écrit :

En gros les classes était forcement issus de la meme famille La reine quoi :D.


 
C'est le cas en Java [:spamafote] : toutes les classes héritent de Object. C'est logique puisque toute les classes ont en commun des mecanismes comme la serialisation, le GC, l'égalité ou la copie.
 
Par ailleurs, concernant les discussions plus haut, je ne vois pas le soucis à dire qu'une page est une classe. Une page est une vue, et une vue est une classe. Tout peut être representé par un objet : une personne, une voiture, une vue, une application, une connexion à la DB etc... L'utilisation des classes n'est pas restreinte à la logique métier. Encore heureux sinon le MVC n'existerait pas.

Message cité 1 fois
Message édité par smaragdus le 14-03-2006 à 11:57:24
n°1324966
omega2
Posté le 14-03-2006 à 12:16:01  profilanswer
 

smaragdus a écrit :

C'est le cas en Java [:spamafote] : toutes les classes héritent de Object. C'est logique puisque toute les classes ont en commun des mecanismes comme la serialisation, le GC, l'égalité ou la copie.

Même si ca se voit pas, il me semble qu'en php aussi tous les objets ont quelques comportements comuns tels que la sérialisation.
 

smaragdus a écrit :

Par ailleurs, concernant les discussions plus haut, je ne vois pas le soucis à dire qu'une page est une classe. Une page est une vue, et une vue est une classe. Tout peut être representé par un objet : une personne, une voiture, une vue, une application, une connexion à la DB etc... L'utilisation des classes n'est pas restreinte à la logique métier. Encore heureux sinon le MVC n'existerait pas.

Faire un objet par vue en considérant qu'une page est une vue, c'est une chôse.
Faire tous les objets en fonction de l'affichage de chaque page au mépris des relations entre les données, s'en est une autre.
 
Au cours de la discution qu'il y a eu au dessus, j'ai eu l'impression qu'on était en présence du second cas et non pas du premier.

n°1324970
anapajari
s/travail/glanding on hfr/gs;
Posté le 14-03-2006 à 12:19:56  profilanswer
 

omega2 a écrit :

Faire un objet par vue en considérant qu'une page est une vue, c'est une chôse.
Faire tous les objets en fonction de l'affichage de chaque page au mépris des relations entre les données, s'en est une autre.
 
Au cours de la discution qu'il y a eu au dessus, j'ai eu l'impression qu'on était en présence du second cas et non pas du premier.


+1

n°1324974
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 12:25:14  profilanswer
 

omega2 a écrit :

Même si ca se voit pas, il me semble qu'en php aussi tous les objets ont quelques comportements comuns tels que la sérialisation.


 
Probablement
 

Citation :

Faire un objet par vue en considérant qu'une page est une vue, c'est une chôse.
Faire tous les objets en fonction de l'affichage de chaque page au mépris des relations entre les données, s'en est une autre.
 
Au cours de la discution qu'il y a eu au dessus, j'ai eu l'impression qu'on était en présence du second cas et non pas du premier.


 
C'est pas vraiment ce que tu disais plus haut :

Citation :

Pour moi un objet ne doit pas être purement graphique mais être logique, c'est à dire que l'ensemble de l'objet forme un bloc qui a une raison d'être.


Une vue est un objet purement graphique qui a une raison d'être : c'est donc un objet. Les classes ne sont pas reservées à la logique métier.

Message cité 2 fois
Message édité par smaragdus le 14-03-2006 à 12:25:54
n°1324980
masklinn
í dag viðrar vel til loftárása
Posté le 14-03-2006 à 12:29:08  profilanswer
 

smaragdus a écrit :

Une vue est un objet purement graphique qui a une raison d'être : c'est donc un objet. Les classes ne sont pas reservées à la logique métier.


Heuu non, en termes d'architecture MVC, les vues sont des éléments logiques, pas graphiques, ce sont les points d'entrée/sortie de l'application [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1324981
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 12:30:33  profilanswer
 

masklinn a écrit :

Heuu non, en termes d'architecture MVC, les vues sont des éléments logiques, pas graphiques, ce sont les points d'entrée/sortie de l'application [:pingouino]


 
"logique" oui mais pas "logique métier" : faut apprendre à lire les phrases en entier  :sarcastic:

Message cité 1 fois
Message édité par smaragdus le 14-03-2006 à 12:32:27
n°1324983
masklinn
í dag viðrar vel til loftárása
Posté le 14-03-2006 à 12:31:30  profilanswer
 

smaragdus a écrit :

"logique" oui mais pas "logique métier" : faut apprendre à lire les phrases en entier  :sarcastic:


Je peux te retourner le compliment, omega2 parlait uniquement de logique, pas de logique métier [:kiki]
 
Et la première partie de ton post n'en est pas moins totalement fausse: une vue n'est en rien quelque chose de "totalement graphique" [:itm]

Message cité 1 fois
Message édité par masklinn le 14-03-2006 à 12:32:31

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1324987
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 12:34:04  profilanswer
 

masklinn a écrit :

Je peux te retourner le compliment, omega2 parlait uniquement de logique, pas de logique métier [:kiki]
 
Et la première partie de ton post n'en est pas moins totalement fausse: une vue n'est en rien quelque chose de "totalement graphique" [:itm]


Alors c'est omega qui raconte des conneries, pour moi un objet purement graphique c'est une image [:itm]
 
Su tu veux t'amuser à jouer sur les mots, ça peut durer longtemps  :sarcastic:

Message cité 1 fois
Message édité par smaragdus le 14-03-2006 à 12:38:35
n°1324991
masklinn
í dag viðrar vel til loftárása
Posté le 14-03-2006 à 12:39:23  profilanswer
 

smaragdus a écrit :

Alors c'est omega qui raconte des conneries, pour moi un objet purement graphique c'est une image [:itm]


smaragdus a écrit :

Une vue est un objet purement graphique qui a une raison d'être


Faudrait savoir [:itm]  

smaragdus a écrit :

T'aimes bien jouer sur les mots, ne fais surtout pas mine de ne pas comprendre  :sarcastic:


Ben voyons [:el g]  


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1324994
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 12:41:07  profilanswer
 

masklinn a écrit :

Faudrait savoir [:itm]


 
Je reprenais la formulation de omega, c'est trop dur à comprendre ? Ca me fait "delirer" ces mecs qui prennent une conversation en route sans lire le contexte.
 

Citation :

Ben voyons [:el g]


 
Si tu veux t'amuser inutilement à jouer sur les mots, fais gaffe, je suis bien + fort que toi à ce petit jeu.

Message cité 1 fois
Message édité par smaragdus le 14-03-2006 à 13:04:06
n°1324995
Djebel1
Nul professionnel
Posté le 14-03-2006 à 12:41:20  profilanswer
 

enfin bon, concevoir les objets de sa logique métier en fonction des pages affichées, je vois pas l'intérêt.
Après on a jamais dit qu'un objet ne pouvait pas gêrer une vue.

n°1324998
masklinn
í dag viðrar vel til loftárása
Posté le 14-03-2006 à 12:43:08  profilanswer
 

smaragdus a écrit :

Si tu veux t'amuser inutilement à jouer sur les mots, fais gaffe, je suis bien + fort que toi à ce petit jeu.


C'est très probable, mais faut encore que tu bosses sur la compréhension de texte [:spamafote]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1324999
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 12:43:23  profilanswer
 

Djebel1 a écrit :

enfin bon, concevoir les objets de sa logique métier en fonction des pages affichées, je vois pas l'intérêt.


Ca c'est clair. :jap:


Message édité par smaragdus le 14-03-2006 à 13:06:17
n°1325018
smaragdus
whores, drugs & J.S. Bach
Posté le 14-03-2006 à 13:05:53  profilanswer
 

masklinn a écrit :

C'est très probable, mais faut encore que tu bosses sur la compréhension de texte [:spamafote]


la prochaine fois que tu viens pourrir un thread, pense à le lire en entier avant...


Message édité par smaragdus le 14-03-2006 à 13:06:06
n°1325048
push
/dev/random
Posté le 14-03-2006 à 13:52:38  profilanswer
 

[:amarant]

n°1327222
jamesbond2
Posté le 17-03-2006 à 10:42:22  profilanswer
 

Merci pour toutes ces réponses. Tout n'est pas clair, mais je vais essayer de voir ou je peux aller avec ça.
 
Une autre chose cependant, doit-on obligatoirement instancier la classe parent dans la classe enfant ?
 
Je serais tenté de répondre oui, car sinon on ne peut pas utiliser la classe parent. Mais alors cela ne revient-il pas au même de faire une seule classe car si il y a instanciation du parent dans l'enfant les deux classes sont chargé en mémoire, non ?
 
Ou est alors l'intéret de l'héritage, à part d'un point de vue d'organisation de fichier ?

n°1327251
Berceker U​nited
PSN : berceker_united
Posté le 17-03-2006 à 11:26:47  profilanswer
 

Si tu instancier un class enfant le parent est là quand même et tu bénificies toujours de ses methodes et propriétés donc non c'est pas la peine.
Par contre si tu places quelque chose dans le constructeur de la class parent tu dois appeler cette fonction.  
Exemple
 

Code :
  1. Class Fichier {
  2.   var $Nom;
  3.   Function Fichier(){
  4.     $this->Nom = 'Russian girl XII.divx';
  5.   }
  6. }
  7. Class Video Extends Fichier{
  8.   Function Video(){
  9.     Parent::Fichier();
  10.     echo $this->Nom; //Va afficher "Russian girl XII.divx"
  11.   }
  12. }


 
 
Sans Parent::Fichier(); le constructeur n'est pas executé dans les classes enfants.

Message cité 1 fois
Message édité par Berceker United le 17-03-2006 à 11:28:01
n°1327272
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-03-2006 à 11:42:00  profilanswer
 

Berceker United a écrit :

...

Code :
  1. Class Fichier {
  2.   var $Nom;
  3.   Function Fichier(){
  4.     $this->Nom = 'Russian girl XII.divx';
  5.   }
  6. }
  7. Class Video Extends Fichier{
  8.   Function Video(){
  9.     Parent::Fichier();
  10.     echo $this->Nom; //Va afficher "Russian girl XII.divx"
  11.   }
  12. }


 
 
Sans Parent::Fichier(); le constructeur n'est pas executé dans les classes enfants.


Très PHP4 ... En php5, c'est quand même bien plus beau :o
Pour reprendre l'exemple de la doc:

Code :
  1. class BaseClass {
  2.    function __construct() {
  3.        print "In BaseClass constructor\n";
  4.    }
  5. }
  6. class SubClass extends BaseClass {
  7.    function __construct() {
  8.        parent::__construct();
  9.        print "In SubClass constructor\n";
  10.    }
  11. }
  12. $obj = new BaseClass();
  13. $obj = new SubClass();


n°1327276
Berceker U​nited
PSN : berceker_united
Posté le 17-03-2006 à 11:45:07  profilanswer
 

Oui j'ai pas precisé que c'est en php 4
Mais pour en revenir à la question principal. Non tu n'as pas à instancier la classe mere.


Message édité par Berceker United le 17-03-2006 à 11:46:25
n°1327278
jamesbond2
Posté le 17-03-2006 à 11:45:27  profilanswer
 

Evidemment, quel co.., j'ai confondu l'instanciation et le constructeur. Merci.
 
P.S. Super ta signature. Le monde se divise en deux catégories ceux qui aiment les vrais films et ceux qui ont des gouts de chiot...

n°1329495
jamesbond2
Posté le 21-03-2006 à 14:42:16  profilanswer
 

Toujours dans un objectif d'optimisation des classes, qu'est ce qui est le moins lourds en terme de ressource machine, créer une varibale membre rempli à l'initialisation pour stocker une valeur qu'on appel dans plusieurs méthodes ou utiliser un fonction pour calculer cette valeur à chaque appel.
 
Ex : pour utiliser le montant TTC d'une commande,
 
Solution 1 (variable membre) :

Code :
  1. $this->prixTTC;


 
Solution 2 (fct de calcul) :  

Code :
  1. function getPrixTTC()
  2. {
  3.    //algorithme de calcul du prixTTC
  4.    return $prixTTC;
  5. }


n°1329500
masklinn
í dag viðrar vel til loftárása
Posté le 21-03-2006 à 14:44:29  profilanswer
 

Ca irait très bien dans une propriété (tu stockes le prix HT non?), mais pas dans une variable membre (ou alors il faut la mettre à jour à chaque maj du prix HT, c'est lourd). Et vu comment les propriétés fonctionnent en PHP, je dirais de passer par des getter/setter [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1329513
jamesbond2
Posté le 21-03-2006 à 14:52:26  profilanswer
 

Qu'entends-tu par propriété ?
 
pour ma part je ne connais que les variables local ou membre.
 
En gros j'ai deux 'schéma' d'utilisation, soit j'utilise le mode commande ou tous les prix sont calculer dynamiquement, soit j'utilise le mode état ou il ne s'agit que d'afficher des valeurs (sans calcul).

n°1329524
masklinn
í dag viðrar vel til loftárása
Posté le 21-03-2006 à 15:05:18  profilanswer
 

jamesbond2 a écrit :

Qu'entends-tu par propriété ?


Ce sont des variables membres "virtuelles".
 
En fait, ça permet de cacher de petites fonctions derrière des appels de variables membres, genre ce genre de petits trucs à la con, mais c'est super mal fait en PHP donc c'est mort.  
(En ruby c'est bien mieux fait, je mettrais une petite démo en fin de post)

jamesbond2 a écrit :

En gros j'ai deux 'schéma' d'utilisation, soit j'utilise le mode commande ou tous les prix sont calculer dynamiquement, soit j'utilise le mode état ou il ne s'agit que d'afficher des valeurs (sans calcul).


[:petrus dei]
 
Exemple de propriétés en Ruby:
 
Imaginons que je crée une classe Item avec une variable membre prixHT, mais que je veuilles aussi pouvoir afficher son prix TTC (c'est 19.6 en france non?) ça va donner un truc comme ça:

Code :
  1. class Item # je crée ma classe
  2.    def initialize(prix_ht) # "constructeur" en Ruby, équivalent à __construct
  3.        @prix_ht = prix_ht # le préfixe "@" indique une variable membre
  4.    end
  5.  
  6.    def prix_ttc
  7.        return @prix_ht * 1.196
  8.    end
  9. end


Et maintenant, je peux faire un truc du style

Code :
  1. >> item = Item.new(16) # équivalent à "new Klass()", je crée un item avec un prix HT de 16
  2. >> item.prix_ttc # J'appelle comme si c'était une variable membre
  3. => 19.136


 
Ca permet de créer des "variables membres" calculées dynamiquement quand tu y accèdes quoi.


Message édité par masklinn le 21-03-2006 à 15:05:50

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1329551
Berceker U​nited
PSN : berceker_united
Posté le 21-03-2006 à 15:23:45  profilanswer
 

heu c'est comme les accesseur en vb, non ? je vois pas en quoi c'est mal fait en php à la différence c'est qu'avec ce derniere nous savons de suite que c'est une fonction pas possible de le déguiser en variable "screde"  [:negueu]  
Dans la finalité cela revient à la meme chose à moin que j'ai loupé quelque chose.

n°1329567
masklinn
í dag viðrar vel til loftárása
Posté le 21-03-2006 à 15:32:18  profilanswer
 

Berceker United a écrit :

heu c'est comme les accesseur en vb, non ? je vois pas en quoi c'est mal fait en php


Vas voir les méthodes magiques __get et __set [:petrus75]

Berceker United a écrit :

la différence c'est qu'avec ce derniere nous savons de suite que c'est une fonction pas possible de le déguiser en variable "screde"  [:negueu]


Ca me fait un peu mal au cul de mieux connaitre le langage que toi alors que je tente au possible de ne jamais l'utiliser [:petrus75]

Berceker United a écrit :

Dans la finalité cela revient à la meme chose à moin que j'ai loupé quelque chose.


Désolé, mais perso je trouve beaucoup plus simple et lisible d'écrire

a = foo.bar
foo.bar = b


que

a = foo.getBar()
foo.setBar(b)


De plus ce genre de trucs permet de facilement modifier le comportement de l'objet sans changer son interface externe e.g. de transformer une variable membre publique (accessible) en propriété quand on se rend compte qu'il faut modifier l'implémentation.
 
L'absence de propriétés fait, par exemple, qu'en java ou en PHP si on veut pouvoir faire évoluer ses objets sur le long terme on est obligé de planquer tous les membres derrière des getters/setters inutiles et redondants.


Message édité par masklinn le 21-03-2006 à 15:32:42

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1329589
Berceker U​nited
PSN : berceker_united
Posté le 21-03-2006 à 15:44:10  profilanswer
 

Mais je ne remet pas en cause ce que tu dis et je m'en rend bien compte actuellement car je fais du c# et je me suis heurter à ce probleme le faite de passer par des accesseurs à chaque fois et qui fait qu'il y avait une certaine régidité. En java je savais que c'étais pas possible mais je ne pensais pas que ces tocards de chez m$ reprendrais la même chose.

Citation :

C'est comme le gosse à qui ont lui demande de copier son nom sur l'ardoise mais tellement il a l'habitude de copier qu'il copie le nom de son voisin.

n°1329606
omega2
Posté le 21-03-2006 à 16:10:36  profilanswer
 

Je m'étais toujours demandé pourquoi en delphi je voyais souvent des "pseudo variables" qui ne servaient qu'a appeller une fonction quand on lui affecte une valeur et à en appeller une autre quand on lui demande sa valeur.
Certe, le coup du "on poura modifier l'objet sans changer l'interface publique de l'objet" est alléchante, mais je me pose toujours la question suivante : a partir de quel moment est ce qu'on abuse de cette méthode là?

n°1329610
masklinn
í dag viðrar vel til loftárása
Posté le 21-03-2006 à 16:18:26  profilanswer
 

omega2 a écrit :

Je m'étais toujours demandé pourquoi en delphi je voyais souvent des "pseudo variables" qui ne servaient qu'a appeller une fonction quand on lui affecte une valeur et à en appeller une autre quand on lui demande sa valeur.
Certe, le coup du "on poura modifier l'objet sans changer l'interface publique de l'objet" est alléchante, mais je me pose toujours la question suivante : a partir de quel moment est ce qu'on abuse de cette méthode là?


À partir du moment où les fonctions appelées ont un effet de bord important.
 
Les propriétés sont vues comme des variables membres, donc du point de vue de l'appelant elles ne doivent pas effectuer de trop gros trucs (pas de calculs qui font tomber la machine, rien qui prend 15 ans à s'exécuter, ...).
 
Après ça dépend aussi des langages, en Smalltalk (et en Ruby) les parenthèses pour appeler une méthode sont optionnelle donc les propriétés dérivent simplement de la syntaxe du langage, donc le point ci-dessus n'en est pas vraiment un, en Python (pour delphi je sais pas) ce sont des constructions séparées donc il tient


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1329630
omega2
Posté le 21-03-2006 à 16:44:44  profilanswer
 

en delphi, tu définis tes deux fonctions et ensuite tu crés une propriété grace à la syntaxe :

Code :
  1. property    LaProprietePublique[Paramettre1 : Type ...]   : Integer read LaFonctionDeLecture     write LaFonctionDEcriture;


 
EDIT : Les "...", c'est juste pour dire qu'on peut mettre plusieurs paramettres. Quand aux crochet, c'est la syntaxe du langage qui les demande. Ca ne veut pas dire que le contenu est optionel.


Message édité par omega2 le 21-03-2006 à 16:46:17
n°1329634
masklinn
í dag viðrar vel til loftárása
Posté le 21-03-2006 à 16:47:19  profilanswer
 

ok :jap:


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
[PHP/MySql] Probleme avec la connexion a une base de donnée Mysqlbbcode insertion image (javascript et PHP)
Petite question PHP/SQLEcrire dans un .sh a partir de Php
Script page administration et authentification Php[PHP] Problème de connexion avec LDAP
PHP : problème d'envoi de mail + piece jointe sur WanadooASP - HTML récupéré data HTML dans pages .ASP
paramètre de serveur PHP[PHP] Mise en place d'un WEBFTP
Plus de sujets relatifs à : PHP objet alloudi les pages ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)