2009-01-12 6 views
1

Pour mon exemple, j'ai une classe Person avec un nombre arbitraire d'adresses associées. Il y aura donc une collection Addresses en tant que membre de la classe Person.Meilleur design pour implémenter l'élément "Default" dans la collection

Dans de nombreuses applications qui utilisent la classe Person, nous voulons simplement récupérer l'objet Adresse "Default". Il y a quelques questions de conception concernant l'implémentation:

  1. Sur chaque enregistrement d'adresse dans le DB, je pourrais avoir un drapeau pour définir s'il est par défaut pour la collection. Alternativement, je pourrais avoir différents types d'adresses (Accueil, Facturation, Livraison, etc ...) et mettre en place des règles pour dire que si une personne a un enregistrement d'adresse personnelle, utilisez-la par défaut. Sinon, utilisez Shipping, etc ...
  2. En ce qui concerne l'interface utilisée pour récupérer l'adresse par défaut, il y a plusieurs façons de le faire, et j'aimerais savoir ce qui est le mieux pour certains des SO gens.

    Address a1 = myPerson.DefaultAddress; 
    Address a1 = myPerson.Addresses["Default"]; 
    Address a1 = myPerson.Addresses.Default; 
    

Il est probablement de bons conseils pour dire: « Cela dépend de votre application. » Laissez-moi préempter cela en disant que nous construisons des classes fondamentales pour tous nos nouveaux développements. Donc, je ne peux pas nécessairement regarder cette première application que nous construisons comme le dernier mot sur la conception de classe.

Répondre

1

Si vous définissez l'indicateur pour chaque enregistrement dans la base de données, vous disposerez des fonctionnalités les plus étendues. Le codage en dur des règles pour lesquelles l'adresse à afficher par défaut limitera votre conception.

Pour le numéro 2, la troisième implémentation ressemble à la plus orientée objet.

Questions connexes