Classe réutilisable modèles
je suis de la conception d'un nouveau morceau de logiciel à l'aide de l'ÉCO Modeler, que je mettrai en œuvre à l'aide de l'ÉCO 2.
Comme je l'ai été à la modélisation de l'entreprise de classes, j'ai été en accordant une attention particulière à la création de classes dans les modèles que je vais être en mesure de la réutilisation dans des applications différentes.
MODÈLE 1: informations de Contact
Dans le passé, j'ai dit, et je vais le dire encore une fois! La Composition est plus puissant que l'héritage!
Mes coordonnées modèle est un bon exemple de cela. Les différents types de classe nécessitent souvent une sorte de coordonnées (numéros de téléphone, adresses e-mail, etc). Pour gagner du temps en reproduisant des classes beaucoup de gens vont sauter directement dans et de créer un 'Contact' de la classe qui a ce de diverses informations. Puis ils descendent d'autres classes telles que [la Société] et [Personne] à partir de cette classe.
je n'aime pas cette approche. L'héritage doit être utilisé lorsque vous voulez que votre mise en œuvre pour traiter les objets d'une manière courante, et pas pour l'amour de la réduction de la quantité de travail que vous avez à faire lors de la conception de votre modèle.
[Réservation] comme un exemple. Vous pouvez enregistrer différentes informations par rapport à une réservation. Évidemment, la réservation aurait une association à une Personne, mais si vous voulais garder l'historique des informations de contact? Les coordonnées de la personne qui peut changer dans le futur, et ensuite l'historique de l'information est perdue. Faites-vous [Réservation] [Contact] trop?
si vous souhaitez enregistrer [Stock] les emplacements? Voulez-vous descendre [Van], [Chambre], [Bâtiment], [VendingMachine] à partir d'une même classe? Que faire si une [Personne] ne peut détenir des actions ainsi que la mise en attente des informations de contact? L'héritage peut être un vrai bordel!
au Lieu de cela, je voudrais créer un ensemble de classes comme illustré ci-dessus. [ContactInformationHolder] est responsable de la tenue des informations de contact.
Quand je veux une classe spécifique pour avoir une collection de [ContactInformation] il suffit de créer une association à partir de la classe (par exemple, 'Personne') [ContactInformationHolder]. En utilisant cette approche, je suis en mesure de faire [la Personne], un titulaire de [Stock] ET capable également de la tenue de nombreux morceaux de [ContactInformation].
MODÈLE 2: Les informations de Contact - Pays
j'ai essayé de penser une réutilisables pour modéliser un [PostalAddress]. Logiquement, vous devriez être en mesure de déterminer [Pays] et [PostalAddress] appartient, donc, mon premier instinct a été de modéliser une association de [PostalAddress] directement à [Pays].
l'Un de mes clients ne veulent pas seulement savoir dans quel pays une personne qui a vécu dans, ils en voulaient à les catégoriser par un certain type de région géographique. L'ajout d'un [Région] association pour le / la [Pays] et [PostalAddress] semblait mal pour moi. Il serait possible de préciser royaume-UNI comme pays, les etats-unis et un état de la région, j'aurais d'inclure les contraintes à vérifier cela. Tout semblait un peu brouillon.
Donc, je suis venu avec cette
Maintenant, au lieu d'être associé directement à un [Pays], [PostalAddress] est en fait associé à une [GeographicLocation]. Cela signifie que [PostalAddress] peut soit appartenir directement à un [Pays] pour les clients qui ne veulent pas les régions, ou un [GeographicArea] pour ceux qui ne.
Dans le modèle ci-dessus, il est possible de créer un pays qui a de nombreuses régions, et chacune de ces régions peut également avoir des sous-régions. Si un client voulait qu'ils pourraient catégorisation à un niveau aussi élevé que les Pays / État / Ville / Ville.
Le 'Chemin' est dérivé de l'association ne fait que retourner une collection de [GeographicLocation], de sorte qu'il est possible d'afficher l'ensemble de la zone comme une chaîne de caractères. Ainsi, au lieu de 'Acocks Green' (où je vis), vous pourriez déterminer la zone 'royaume-Uni / Angleterre / West Midlands / Birmingham / Acocks Green'.
Afin que je puisse facilement déterminer le [Pays] [GeographicLocation] appartient, j'ai ajouté un autre dérivé de l'association. Dans la classe de base il est dérivé comme le 'Pays.emptyList'. Dans le [Pays] de la classe il est dérivé en tant que 'soi', et dans le 'GeographicArea' classe il est dérivé en tant que 'soi.parentArea.pays'.
MODÈLE 3: Adresse
Enfin, j'ai été en mesure de créer une [Adresse] de la classe à ma satisfaction. Je n'aurais pas besoin d'un ancêtre commun pour mes cours pour avoir l'information de contact, et mes clients peuvent se référer directement à un pays, ou à n'importe quel niveau de la répartition géographique ils le souhaitent.
Mon [Adresse] classe a simplement un code postal attribut, un ou plusieurs [AddressLine] les objets, et une association à une GeographicLocation.
CONCLUSION
- Espérons que ces motifs sont génériques, mais suffisamment souple pour une utilisation dans n'importe quelle application.
& nbsp
Classe reutilisable modeles
Classe reutilisable modeles : Plusieurs milliers de conseils pour vous faciliter la vie.
je suis de la conception d'un nouveau morceau de logiciel a l'aide de l'ECO Modeler, que je mettrai en œuvre a l'aide de l'ECO 2.
Comme je l'ai ete a la modelisation de l'entreprise de classes, j'ai ete en accordant une attention particuliere a la creation de classes dans les modeles que je vais etre en mesure de la reutilisation dans des applications differentes.
MODELE 1: informations de Contact
Dans le passe, j'ai dit, et je vais le dire encore une fois! La Composition est plus puissant que l'heritage!
Mes coordonnees modele est un bon exemple de cela. Les differents types de classe necessitent souvent une sorte de coordonnees (numeros de telephone, adresses e-mail, etc). Pour gagner du temps en reproduisant des classes beaucoup de gens vont sauter directement dans et de creer un 'Contact' de la classe qui a ce de diverses informations. Puis ils descendent d'autres classes telles que [la Societe] et [Personne] a partir de cette classe.
je n'aime pas cette approche. L'heritage doit etre utilise lorsque vous voulez que votre mise en œuvre pour traiter les objets d'une maniere courante, et pas pour l'amour de la reduction de la quantite de travail que vous avez a faire lors de la conception de votre modele.
[Reservation] comme un exemple. Vous pouvez enregistrer differentes informations par rapport a une reservation. Evidemment, la reservation aurait une association a une Personne, mais si vous voulais garder l'historique des informations de contact? Les coordonnees de la personne qui peut changer dans le futur, et ensuite l'historique de l'information est perdue. Faites-vous [Reservation] [Contact] trop?
si vous souhaitez enregistrer [Stock] les emplacements? Voulez-vous descendre [Van], [Chambre], [Batiment], [VendingMachine] a partir d'une meme classe? Que faire si une [Personne] ne peut detenir des actions ainsi que la mise en attente des informations de contact? L'heritage peut etre un vrai bordel!
au Lieu de cela, je voudrais creer un ensemble de classes comme illustre ci-dessus. [ContactInformationHolder] est responsable de la tenue des informations de contact.
Quand je veux une classe specifique pour avoir une collection de [ContactInformation] il suffit de creer une association a partir de la classe (par exemple, 'Personne') [ContactInformationHolder]. En utilisant cette approche, je suis en mesure de faire [la Personne], un titulaire de [Stock] ET capable egalement de la tenue de nombreux morceaux de [ContactInformation].
MODELE 2: Les informations de Contact - Pays
j'ai essaye de penser une reutilisables pour modeliser un [PostalAddress]. Logiquement, vous devriez etre en mesure de determiner [Pays] et [PostalAddress] appartient, donc, mon premier instinct a ete de modeliser une association de [PostalAddress] directement a [Pays].
l'Un de mes clients ne veulent pas seulement savoir dans quel pays une personne qui a vecu dans, ils en voulaient a les categoriser par un certain type de region geographique. L'ajout d'un [Region] association pour le / la [Pays] et [PostalAddress] semblait mal pour moi. Il serait possible de preciser royaume-UNI comme pays, les etats-unis et un etat de la region, j'aurais d'inclure les contraintes a verifier cela. Tout semblait un peu brouillon.
Donc, je suis venu avec cette
Maintenant, au lieu d'etre associe directement a un [Pays], [PostalAddress] est en fait associe a une [GeographicLocation]. Cela signifie que [PostalAddress] peut soit appartenir directement a un [Pays] pour les clients qui ne veulent pas les regions, ou un [GeographicArea] pour ceux qui ne.
Dans le modele ci-dessus, il est possible de creer un pays qui a de nombreuses regions, et chacune de ces regions peut egalement avoir des sous-regions. Si un client voulait qu'ils pourraient categorisation a un niveau aussi eleve que les Pays / Etat / Ville / Ville.
Le 'Chemin' est derive de l'association ne fait que retourner une collection de [GeographicLocation], de sorte qu'il est possible d'afficher l'ensemble de la zone comme une chaîne de caracteres. Ainsi, au lieu de 'Acocks Green' (ou je vis), vous pourriez determiner la zone 'royaume-Uni / Angleterre / West Midlands / Birmingham / Acocks Green'.
Afin que je puisse facilement determiner le [Pays] [GeographicLocation] appartient, j'ai ajoute un autre derive de l'association. Dans la classe de base il est derive comme le 'Pays.emptyList'. Dans le [Pays] de la classe il est derive en tant que 'soi', et dans le 'GeographicArea' classe il est derive en tant que 'soi.parentArea.pays'.
MODELE 3: Adresse
Enfin, j'ai ete en mesure de creer une [Adresse] de la classe a ma satisfaction. Je n'aurais pas besoin d'un ancetre commun pour mes cours pour avoir l'information de contact, et mes clients peuvent se referer directement a un pays, ou a n'importe quel niveau de la repartition geographique ils le souhaitent.
Mon [Adresse] classe a simplement un code postal attribut, un ou plusieurs [AddressLine] les objets, et une association a une GeographicLocation.
CONCLUSION
- Esperons que ces motifs sont generiques, mais suffisamment souple pour une utilisation dans n'importe quelle application.
& nbsp
Classe réutilisable modèles
By commentfaire
Classe réutilisable modèles : Plusieurs milliers de conseils pour vous faciliter la vie.