2009-07-27 7 views
0

Quelqu'un peut-il suggérer quelques conseils pour la conception et la mise en œuvre de bonnes propriétés? Je suis préoccupé par des aspects tels que:Conseils pour la conception de propriétés?

  • Effets secondaires
  • mutuelle Exclusivité
  • Concurrency
  • symétrie et Réversibilité
  • Traitement des erreurs/exceptions

Pointeurs à écrire ups existantes que répondre à ces sujets serait génial. Je ne cherche pas d'aide avec les propriétés de dépendance WPF.

Répondre

1

En règle générale, les propriétés ne doivent contenir pratiquement aucune autre logique que des vérifications de limites et des vérifications de type (dépend du langage). Par conséquent, tous les éléments de la liste autres que Gestion des erreurs/Exceptions ne doivent pas être des facteurs lors de la mise en œuvre des propriétés.

W.R.T En cas de gestion d'erreur, il est tout à fait correct de supprimer des exceptions des propriétés (c'est-à-dire lorsqu'un bloc appelant tente de définir une propriété sur une valeur non valide). En outre, l'utilisation de try ... catch est appropriée lorsque vous tentez d'analyser des données.

Un exemple de ceci serait en utilisant une propriété pour masquer un paramètre de requête dans une application Web:

public int UserId 
    { 
      get { 
       string x = Request["userid"]; 
        int userid = -1; 
        if (!int.TryParse(x, out userid)) 
         throw new ApplicationException("UserID must be a valid integer"); 

        return userid; 
       } 
    } 

c'est un peu d'un exemple artificiel et simplifiée, mais je l'espère, il illustre le point. Dans une application du monde réel, vous souhaiterez peut-être utiliser une autre méthode de traitement et/ou d'analyse des erreurs pour vérifier les plages d'ID valides et autres, selon les circonstances.

Les propriétés wikipedia entry peuvent également être un bon endroit pour plus d'informations

Questions connexes