IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Conception POO en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut Conception POO en php
    Bonjour,

    j'essaie de me mettre à la POO avec php, et je rencontre un petit soucis de conception...

    J'ai une classe "cellule" qui contient une une méthode abstraite "display".
    Cette méthode est abstraite car elle doit être redéfinie selon ce qu'on met dans cellule.

    J'ai d'autre part une classe "liste".

    Je souhaiterais que cette classe "liste" contienne un membre de la classe "cellule".

    Dans l'esprit, j'aurais donc quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    abstract class cellule {
        protected $value;
        /* @var dlist_cell */
        protected $next;
        /* @var dlist_cell */
        protected $previous;
     
        abstract public function display();
    }
     
    class liste {
        /* @var cellule */
        protected $sentinel;
        protected $len;
     
        public function __construct() {
            $this->sentinel = new cellule();
            $this-len = 0;
        }
    }
    Or je ne peux pas instancier une classe abstraite.

    Comment concevoir / modéliser ce genre de chose?

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Je dirais que le mieux c'est que tu n'utilises pas directement la classe cellule().
    Il faudra par exemple créer une classe qui héritera de cellule() ensuite l'utiliser dans liste().

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut
    Oui, mais justement...
    Je souhaite que "liste" fonctionne avec n'importe quelle classe dérivée de "cellule"
    Si je précise la classe dans "liste", alors elle n'est a priori plus aussi générique...

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    OK mais l’intérêt d'une méthode ou classe abstraite c'est puisse être utilisé et modifier par d'autres classes selon les besoins.
    Est ce que ça ne serait pas mieux que tu déclare la classe "cellule" comme abstraite vu qu'elle contient une méthode abstraite.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 85
    Par défaut
    mmmm...
    Je ne suis pas sûr de comprendre...
    Dans mon exemple de code, la classe "cellule" est en effet déclarée abstraite car elle contient une méthode abstraite.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Désolé j'avais pas vu l'abstract dans:Une classe abstraite ne peut pas être instancié, les classes filles le sont.

Discussions similaires

  1. [PHP 5.0] [conception] Un projet php (POO-BDD-Ajax-CSS)
    Par cryptom dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2009, 02h41
  2. [POO] Conseils pour conception logicielle en php
    Par mithrendil dans le forum Langage
    Réponses: 14
    Dernier message: 07/02/2008, 18h19
  3. [Conception] Débuts en PHP & SGBD
    Par qnop dans le forum PHP & Base de données
    Réponses: 32
    Dernier message: 17/03/2006, 21h18
  4. [POO] POO et PHP
    Par toure32 dans le forum Langage
    Réponses: 2
    Dernier message: 17/12/2005, 01h37
  5. [POO] Env PHP 5
    Par yanis97 dans le forum Langage
    Réponses: 8
    Dernier message: 09/11/2005, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo