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

C# Discussion :

Créer un type


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 123
    Points : 84
    Points
    84
    Par défaut Créer un type
    Bonjour à tous,
    Ma question ne s'applique pas qu'à C#, mais c'est le langage de programmation que j'utilise, et je n'osais pas poster dans un forum plus général.
    Pour une application qui travaille sur des bâtiments, j'ai besoin de créer différents types d'ouverture, chaque type ayant différentes caractéristiques: nom du type d'ouverture ("fenêtre", "porte", "baie vitrée", etc.), largeur minimale, largeur max, etc.
    Je me demande quelle serait la manière la plus propre d'implémenter ça: une classe standard, chaque type étant une instance de cette classe? un classe statique? Est-il pertinent d'utiliser des enums? des tuples? etc.
    Qu'en pensez-vous?
    Things working well, no problems. Time to upgrade.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Sur un enum tu ne pourras pas avoir de propriété telles que la largeur et la longueur.
    Un tuple permet plusieurs valeurs mais ne permet pas de les nommer et donc de savoir à quoi correspond telle valeur.
    Les classes te permettent d'avoir des propriétés nommées et t'apportent toute la souplesse dont tu pourrais nécessiter par la suite (héritage, polymorphisme, utilisation dans différents pattern).

    Moi je verrais bien une classe abstraite "Ouverture" et des classes qui en héritent "Porte", "Fenêtre", etc.
    Tu peux éventuellement les faire construire par un pattern de type Factory.

    On peux aisément imaginer qu'il n'y aura pas que des ouverture à gérer mais tout un ensemble de composants pour construire un bâtiment.
    Un pattern Builder est tout indiqué pour ça.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 123
    Points : 84
    Points
    84
    Par défaut
    Merci pour ces pistes, je vais étudier ça!
    Things working well, no problems. Time to upgrade.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#] Impossible de créer le type
    Par nemya dans le forum Services Web
    Réponses: 4
    Dernier message: 31/05/2007, 21h56
  2. créer un type
    Par Emcy dans le forum C
    Réponses: 21
    Dernier message: 06/10/2006, 12h26
  3. Créer son type de donnée
    Par progfou dans le forum Général Python
    Réponses: 5
    Dernier message: 14/12/2005, 09h31
  4. créer un type dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2005, 13h54
  5. créer un type hidden dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2005, 12h17

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