26-02-2013, 06:19 PM
Salut,
une classe par type d'objet, je trouve ca parfaitement logique. Si plusieurs objets sont similaires, faire un héritage de classe me semble parfaitement approprié.
Avoir un diagramme du type suivant:
Véhicule
- Route
-- Voiture
--- Electrique
--- Essence
--- Air comprimé
-- Camion
- Aerien
- Naval
Me semble plus clair que d'avoir une seule classe "véhicule" avec un variable du genre "$type_de_véhicule = voiture;".
De plus, cela ne me semble pas génant d'avoir une classe "vide", au sens:
une classe par type d'objet, je trouve ca parfaitement logique. Si plusieurs objets sont similaires, faire un héritage de classe me semble parfaitement approprié.
Avoir un diagramme du type suivant:
Véhicule
- Route
-- Voiture
--- Electrique
--- Essence
--- Air comprimé
-- Camion
- Aerien
- Naval
Me semble plus clair que d'avoir une seule classe "véhicule" avec un variable du genre "$type_de_véhicule = voiture;".
De plus, cela ne me semble pas génant d'avoir une classe "vide", au sens:
Code PHP :
<?php
class Voiture
{
public function rouler()
{
// vroum vroum
}
public function faireLePlein()
{
// glou glou
}
protected function creuverUnPneu()
{
// pschhhhhhhh
}
}
class Lada extends Voiture
{
}// classe "vide" car elle n'apporte "rien" par rapport à "Voiture".
Atouts:
- Clareté de code ("new Lada()" est assez explicite et instancie une Lada, alors que new Voiture() ne permet pas de savoir grand chose sur cette voiture)
- Extensibilité (si on veut que la lada puisse perdre une portière dans un virage, c'est facile d'ajouter la méthode dans la classe "Lada")
- Facilité de relecture
Inconvénients:
- Un peu lourd à coder (faut ajouter des classes vides)
- Un peu lourd à la documentation (classes vides qui semblent "parasiter" le code)
Donc, oui, une classe par objet me semble parfait.
PS: le code est en PHP (le fait que tu parles de "use()" qui n'existe pas en PHP me fait penser que tu ne code peut-être pas dans ce langage), mais l'idée est la même pour tout langage OO ou pseudo-OO.