Wiederverwendbare Klasse Muster

Wiederverwendbare Klasse Muster


Ich bin ein neues Stück von Software mit ECO-Modellierer, die ich umsetzen mit ECO 2 Gestaltung.
Wie ich die Geschäftsklassen Modellierung wurde haben habe ich wurde besonderes Augenmerk auf Erstellen von Klassen in Muster, die ich in verschiedenen Anwendungen wiederverwenden können.

Muster 1: Kontaktinformationen
In der Vergangenheit habe ich es gesagt, und ich sage es noch einmal! Zusammensetzung ist mächtiger als Vererbung!
Meine Kontaktinformationen-Muster ist ein gutes Beispiel dafür. Verschiedene Arten der Klasse erfordern häufig eine Art von Kontakt-Informationen (Telefonnummern, e-Mail-Adressen, etc.). Um Zeit reproduzierenden Klassen speichern viele Menschen gerade in springt und erstellen Sie eine 'Kontakt'-Klasse, die diese verschiedenen Informationen hat. Dann werden sie andere Klassen wie [Unternehmen] und [Person] von dieser Klasse absteigen.
Ich mag es nicht, dass dieser Ansatz. Vererbung sollte verwendet werden, wenn Sie Ihre Implementierung, Objekte in einen gemeinsamen Weg zu behandeln und nicht im Interesse der Verringerung der Menge an Arbeit du tun musst, wenn Ihr Modell zu entwerfen.
Nehmen Sie wir als Beispiel ein [Booking]. Sie können verschiedene Informationen in Bezug auf eine Buchung aufzeichnen möchten. Natürlich hätte die Buchung eine Zuordnung zu einer Person, aber was ist, wenn Sie wollte, um historische Kontaktinformationen? Die Kontaktinformationen für die Person kann sich in Zukunft ändern, und dann ist die historische Informationen verloren. Stellen Sie [Booking] [Kontakt] zu?
Was passiert, wenn Sie [Stock] Standorte aufnehmen möchten? Würden Sie absteigen [Van], [DZ], [Haus], [VendingMachine] aus einer gemeinsamen Klasse? Was passiert, wenn eine [Person] kann halten Lager zu sowie halten Kontaktinformationen zu? Vererbung kann ein echtes Chaos sein!
Contact information holder
Stattdessen würde ich eine Reihe von Klassen erstellen, wie oben dargestellt. [ContactInformationHolder] ist verantwortlich für die Abhaltung von Kontaktinformationen.
Wann immer ich will eine bestimmte Klasse, eine Sammlung von [ContactInformation] erstelle ich einfach eine unidirektionale Verbindung aus der Klasse (zB 'Person'), [ContactInformationHolder]. Mit diesem Ansatz ich kann [Person] [Stock] und der Inhaber der Betrieb zahlreiche Stücke von [ContactInformation] auch geeignet machen.

Muster 2: Kontakt - Land


Ich habe versucht zu denken, bis eine wiederverwendbare Weise [PostalAddress] zu modellieren. Logischerweise sollte man feststellen, welches [Land] [PostalAddress] angehört, so mein erste Impuls war, eine Vereinigung aus [PostalAddress] direkt in [Land] zu modellieren.
Einer meiner Kunden wollte nicht nur zu wissen, welches Land eine Person in lebte, sie wollten sie durch eine Art Wirtschaftsgebieten sowie einzuordnen. Hinzufügen einer Vereinigung [Region] [Land] und [PostalAddress] schien mir falsch. Es wäre möglich, UK als das Land, und ein US-Bundesstaaten als Region anzugeben, würde ich zu Einschränkungen überprüfen gehören. Nur schien alles ein bisschen chaotisch.
Also kam ich mit dieserCountry
Jetzt wird anstelle einer Assoziierung direkt in ein [Land], [PostalAddress] tatsächlich zugeordnet [GeographicLocation]. Dies bedeutet, dass die [PostalAddress] entweder direkt in ein [Land] für Kunden gehören kann, die Regionen oder [GeographicArea] für diejenigen, die wollen nicht.
In diesem Modell ist es möglich, ein Land zu erstellen, die viele Regionen hat, und jede dieser Regionen haben auch Unterregionen. Wenn ein Kunde wollte sie kategorisieren könnte auf ein Niveau so hoch wie Land / Bundesland / Stadt / Gemeinde.
Der Verein 'Path' abgeleitet gibt lediglich eine Auflistung von [GeographicLocation], so dass es möglich ist, den gesamten Bereich als Zeichenfolge angezeigt. Also statt 'Acocks Green' (wo ich lebe) können Sie die Gegend als 'Großbritannien / England / West Midlands / Birmingham / Acocks Green' bestimmen.
Damit ich das [Land] leicht feststellen können, zu der gehört eine [GeographicLocation] hinzugefügt habe ich eine weitere abgeleiteten Zuordnung. In der Basisklasse wird es als 'Country.emptyList' abgeleitet. In [Land]-Klasse, die es abgeleitet wird ist es als 'selbst', und in der Klasse 'GeographicArea' als 'self.parentArea.country' abgeleitet.

Muster 3: Adresse
Schließlich konnte ich eine Klasse [Adresse] zu meiner Zufriedenheit zu erstellen. Ich würde keinen gemeinen Vorfahr für meine Klassen haben Kontaktinformationen, brauche und meine Kunden können entweder direkt auf ein Land beziehen oder auf jeder Ebene der geografische Aufgliederung, die sie wünschen.

Meine Klasse [Adresse] hat einfach ein PostalCode-Attribut, ein oder mehrere [AddressLine]-Objekte und eine Zuordnung zu einem GeographicLocation.

Address

FAZIT

  1. Hoffentlich werden diese Muster generische noch flexibel genug, um in einer Software-Anwendung verwenden.








Wiederverwendbare Klasse Muster


Wiederverwendbare Klasse Muster : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Ich bin ein neues Stück von Software mit ECO-Modellierer, die ich umsetzen mit ECO 2 Gestaltung.
Wie ich die Geschäftsklassen Modellierung wurde haben habe ich wurde besonderes Augenmerk auf Erstellen von Klassen in Muster, die ich in verschiedenen Anwendungen wiederverwenden können.

Muster 1: Kontaktinformationen
In der Vergangenheit habe ich es gesagt, und ich sage es noch einmal! Zusammensetzung ist mächtiger als Vererbung!
Meine Kontaktinformationen-Muster ist ein gutes Beispiel dafür. Verschiedene Arten der Klasse erfordern häufig eine Art von Kontakt-Informationen (Telefonnummern, e-Mail-Adressen, etc.). Um Zeit reproduzierenden Klassen speichern viele Menschen gerade in springt und erstellen Sie eine 'Kontakt'-Klasse, die diese verschiedenen Informationen hat. Dann werden sie andere Klassen wie [Unternehmen] und [Person] von dieser Klasse absteigen.
Ich mag es nicht, dass dieser Ansatz. Vererbung sollte verwendet werden, wenn Sie Ihre Implementierung, Objekte in einen gemeinsamen Weg zu behandeln und nicht im Interesse der Verringerung der Menge an Arbeit du tun musst, wenn Ihr Modell zu entwerfen.
Nehmen Sie wir als Beispiel ein [Booking]. Sie können verschiedene Informationen in Bezug auf eine Buchung aufzeichnen möchten. Natürlich hätte die Buchung eine Zuordnung zu einer Person, aber was ist, wenn Sie wollte, um historische Kontaktinformationen? Die Kontaktinformationen für die Person kann sich in Zukunft ändern, und dann ist die historische Informationen verloren. Stellen Sie [Booking] [Kontakt] zu?
Was passiert, wenn Sie [Stock] Standorte aufnehmen möchten? Würden Sie absteigen [Van], [DZ], [Haus], [VendingMachine] aus einer gemeinsamen Klasse? Was passiert, wenn eine [Person] kann halten Lager zu sowie halten Kontaktinformationen zu? Vererbung kann ein echtes Chaos sein!
Contact information holder
Stattdessen würde ich eine Reihe von Klassen erstellen, wie oben dargestellt. [ContactInformationHolder] ist verantwortlich für die Abhaltung von Kontaktinformationen.
Wann immer ich will eine bestimmte Klasse, eine Sammlung von [ContactInformation] erstelle ich einfach eine unidirektionale Verbindung aus der Klasse (zB 'Person'), [ContactInformationHolder]. Mit diesem Ansatz ich kann [Person] [Stock] und der Inhaber der Betrieb zahlreiche Stücke von [ContactInformation] auch geeignet machen.

Muster 2: Kontakt - Land


Ich habe versucht zu denken, bis eine wiederverwendbare Weise [PostalAddress] zu modellieren. Logischerweise sollte man feststellen, welches [Land] [PostalAddress] angehört, so mein erste Impuls war, eine Vereinigung aus [PostalAddress] direkt in [Land] zu modellieren.
Einer meiner Kunden wollte nicht nur zu wissen, welches Land eine Person in lebte, sie wollten sie durch eine Art Wirtschaftsgebieten sowie einzuordnen. Hinzufügen einer Vereinigung [Region] [Land] und [PostalAddress] schien mir falsch. Es wäre möglich, UK als das Land, und ein US-Bundesstaaten als Region anzugeben, würde ich zu Einschränkungen überprüfen gehören. Nur schien alles ein bisschen chaotisch.
Also kam ich mit dieserCountry
Jetzt wird anstelle einer Assoziierung direkt in ein [Land], [PostalAddress] tatsächlich zugeordnet [GeographicLocation]. Dies bedeutet, dass die [PostalAddress] entweder direkt in ein [Land] für Kunden gehören kann, die Regionen oder [GeographicArea] für diejenigen, die wollen nicht.
In diesem Modell ist es möglich, ein Land zu erstellen, die viele Regionen hat, und jede dieser Regionen haben auch Unterregionen. Wenn ein Kunde wollte sie kategorisieren könnte auf ein Niveau so hoch wie Land / Bundesland / Stadt / Gemeinde.
Der Verein 'Path' abgeleitet gibt lediglich eine Auflistung von [GeographicLocation], so dass es möglich ist, den gesamten Bereich als Zeichenfolge angezeigt. Also statt 'Acocks Green' (wo ich lebe) können Sie die Gegend als 'Großbritannien / England / West Midlands / Birmingham / Acocks Green' bestimmen.
Damit ich das [Land] leicht feststellen können, zu der gehört eine [GeographicLocation] hinzugefügt habe ich eine weitere abgeleiteten Zuordnung. In der Basisklasse wird es als 'Country.emptyList' abgeleitet. In [Land]-Klasse, die es abgeleitet wird ist es als 'selbst', und in der Klasse 'GeographicArea' als 'self.parentArea.country' abgeleitet.

Muster 3: Adresse
Schließlich konnte ich eine Klasse [Adresse] zu meiner Zufriedenheit zu erstellen. Ich würde keinen gemeinen Vorfahr für meine Klassen haben Kontaktinformationen, brauche und meine Kunden können entweder direkt auf ein Land beziehen oder auf jeder Ebene der geografische Aufgliederung, die sie wünschen.

Meine Klasse [Adresse] hat einfach ein PostalCode-Attribut, ein oder mehrere [AddressLine]-Objekte und eine Zuordnung zu einem GeographicLocation.

Address

FAZIT

  1. Hoffentlich werden diese Muster generische noch flexibel genug, um in einer Software-Anwendung verwenden.

Wiederverwendbare Klasse Muster

Wiederverwendbare Klasse Muster : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Wiederverwendbare Klasse Muster
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung