begin process at 2010 03 22 10:19:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > POLYMORPHISME DE METHODE

POLYMORPHISME DE METHODE


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Niveau :Débutant Date de création :12/03/2003 Date de mise à jour :12/03/2003 05:22:26 Vu :3 803

Auteur : willowman

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

*************************************************
* Le but est d'utiliser une meme methode
* "show() dans notre cas", qui puisse, en
* fonction du parametre, mapper sur la
* methode adequat
*
* Pour ce faire, on effectue un test du type de
* parametre a l'entree de notre methode show()
* qui ensuite, appellera la methode appropriee
************************************************/

// -- NOTE --
// Le but final (une meme signature de methode pour +eurs
// implementations differentes) peu paraitre inutile, lorsque
// l'on voit la bidouille a utiliser, je vous l'accord !!
//
// -- NOTE BIS --
// Personnellement, je ne me sert pas de cette methodologie.
// Je lui prefere le "polymorphisme au niveau des classes",
// plus simple a mettre en oeuvre, donc plus a mon gout
//
// Anli D. (anli.daroueche@libertysurf.fr)

Source

  • /***************************************
  • * test le format d'une date JJ/MM/AAAA
  • ***************************************/
  • function is_date($p) {
  • if(! ereg("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$",$p))
  • return FALSE;
  • else
  • return TRUE;
  • }
  • /*******************
  • * une classe objet
  • *******************/
  • class OBJET {
  • function OBJET() {}
  • function show($v="") {
  • if(is_date($v))
  • $this->showDate($v);
  • elseif(is_numeric($v))
  • $this->showEntier($v);
  • else
  • $this->showChaine($v);
  • }
  • function showEntier($v) {
  • echo "show avec parametre entier</br>";
  • }
  • function showDate($v) {
  • echo "show avec parametre date</br>";
  • }
  • function showChaine($v) {
  • echo "show avec parametre chaine</br>";
  • }
  • }
  • /**********************
  • * Programme Principal
  • **********************/
  • echo "<HTML>";
  • $obj1 = new OBJET();
  • $obj1->show("coucou");
  • $obj1->show(23);
  • $obj1->show("12/10/2002");
  • echo "</HTML>";
/*************************************** 
* test le format d'une date JJ/MM/AAAA 
***************************************/ 

function is_date($p) { 
if(! ereg("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$",$p)) 
return FALSE; 
else 
return TRUE; 
} 

/******************* 
* une classe objet 
*******************/ 

class OBJET { 

function OBJET() {} 

function show($v="") { 
if(is_date($v)) 
$this->showDate($v); 
elseif(is_numeric($v)) 
$this->showEntier($v); 
else 
$this->showChaine($v); 
} 

function showEntier($v) { 
echo "show avec parametre entier</br>"; 
} 

function showDate($v) { 
echo "show avec parametre date</br>"; 
} 

function showChaine($v) { 
echo "show avec parametre chaine</br>"; 
} 

} 

/********************** 
* Programme Principal 
**********************/ 

echo "<HTML>"; 

$obj1 = new OBJET(); 
$obj1->show("coucou"); 
$obj1->show(23); 
$obj1->show("12/10/2002"); 

echo "</HTML>";

 Conclusion

Une bidouille parmis tant d'autres....


 Sources du même auteur

Source avec Zip OSSATURE POUR UN PORTAIL EN PHP
Source avec Zip Source avec une capture RESULTAT DU LOTO (STOCKAGE ET VERIFICATION)
Source avec Zip Source avec une capture AGENDA POUR LES EVENEMENTS - PERSONNALISABLE
PETITE GALLERIE D'IMAGES VITE FAIT....

 Sources de la même categorie

Source avec Zip CLASSE TABLE HTML DYNAMIQUE par LDDL
Source avec Zip GÉNÉRATEUR DE COUCHE DAO POUR SITE WEB À PARTIR D'UNE BASE D... par alexfool
Source avec Zip [PHP5.2] CLASSE PDO par hornetbzz
Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan

Commentaires et avis

Commentaire de Kirua le 13/03/2003 16:54:25

bwarf :)
y a aussi is_array etc... (print_r() est bien pratique lors de testes d'un script!)
en C++, on peut surcharger une fonction lors de sa déclaration, ça évite ce genre de bidouillages.
C'est bien de mentionner cette possibilité, mais un exemple concret ou c'est vrmnt utile (voire nécessaire) ne serait pas de trop. C'est plutôt abstrait vu comme ça.

Commentaire de willowman le 14/03/2003 09:30:17

Bah vi...

Justement, c'etait pour repondre a une personne desirant "emuler" la surcharge de methode disponible en C++ ou Java (et pas encore en PHP objet ...a quand ??) !

C'est sur que c'est une grosse bidouille, mais j'avais mis en garde tout commun des mortels que nous sommes....

Merci toutefois de ta remarque ;-)

A pluche !

Commentaire de Kirua le 14/03/2003 16:32:04

et cette personne, c t ds quel but qu'elle voulait un substitut ?
ça m'intéresserait de savoir dans quel cas c'est utile, voire indispensable.

Commentaire de willowman le 14/03/2003 18:24:54

Ah ca...ca ne regarde qu'elle...

Mais d'apres ce que j'ai compris, c'etait pour clarifier son code en implementant la surcharge de methodes (enfin, les principes sommaires). La bidouille faisant bien entendu, partie d'un fichier bibliotheque, donc transparent aux utilisateurs !

Allez, a pluche ;-)

Commentaire de Kirua le 16/03/2003 17:08:14

k, bye ;-)

Commentaire de kiminox le 06/08/2003 11:35:42

c nul ton truc!
appeler cela du polymorphisme!!
hé, prend des cours prog objet : tu saurais ce que signifie polymorphisme en objet.
Enfin, c'est juste une astuce koi : tu mets cela niveau3!
Hé ben, j'imagine que niveau 1 chez toi c'est du genre : imprimer bonjour à l'écran!
et que le niveau 2 c'est imprimer x fois bonjour à l'écran!

Commentaire de willowman le 06/08/2003 12:04:06

salut kiminox !

- j'ai mis niveau 3 ? mea culpa c'est une erreur de ma part...car je n'attribut aucun niveau a ce script ..( CQFD trivial)

- nul mon truc ? : certes c'est ce que j'ai tenté de faire comprendre en expliquant que cela etait suite a une demande d'explication....encore une fois, mea culpa, car j'ai cru (a tort apparement) que le commun des mortels etait capable de comprendre mes explications !

- juste une astuce : le mot est juste !!

- imprimer bonjour a l'ecran : non quand meme pas, j'ai reussit a passer cette etape.. mais cela n'a pas ete evident a comprendre si simple soit-il ! Etait-ce un de tes tutoriels ?? (surement...;-))

- prendre des cours objet : je ne vais pas t'etaler ici le paradigme objet, ni te detailler mes connaissances...toujours est-il que j'en connais assez pour etre au poste que je suis aujourd'hui !
Dire que j'aurais pu t'avoir dans mon equipe......ouf....

Sur ce merci de tes remarques, si inconstructives fussent-elles !
Si tu en as d'autres....n'hesite surtout pas :-) J'adore les gars comme toi : moins j'en connais, plus j'en parle !
Quand on apporte une critique, il est bon de la replacer suivant un contexte, et ne pas faire de deductions trop hatives.


a+

PS : je ne fais que repondre a tes remarques, toutefois, je te rappelle que cet espace n'est pas fait pour deblaterer de nos differents !


Commentaire de Kirua le 07/08/2003 13:11:23

kiminox, les variables n'étant pas typées en PHP, contrairement au C++ par exemple, on ne peut pas surcharger des fonctions proprement. t'as peut-être parlé un peu vite non ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales