Frage

Ich war auf der Suche auf DataMapper , die auf den ersten Blick erschien das Active ORM Muster zu verwenden. Andere Leute sagten, dass sie die DataMapper und / oder die Domain Object Muster verwendet.

Was ist der Unterschied zwischen diesen Mustern?

War es hilfreich?

Lösung

Der Hauptunterschied zwischen den beiden Mustern, ist dies:

  • In der Active Sie ein Domain-Objekt haben, das sowohl alle Business-Logik kennt und wie speichern / aktualisieren sich in der Datenbank, user.getLinkToProfile () und User :: find (1), User :: speichern (Benutzer)

  • Im DataMapper Muster, das Sie ein Domain-Objekt haben, das alle Geschäftslogik hält, für exmaple user.getLinkToProfile () (oder so ähnlich), aber weiß, nichts über die Datenbank in Frage, Zusätzlich dazu haben Sie ein Mapper-Objekt, das für das Speichern, Aktualisieren, Auswahl usw. Benutzerobjekte aus der Datenbank, die :: finden würde UserMapper verantwortlich ist (1), UserMapper.save (Benutzer)

DataMapper ist potenziell komplexe dann Active aber es ist viel einfacher, Ihr Domain-Modell und Datenbank asynchron zu entwickeln, dann mit Active.

Andere Tipps

aktiver Datensatz ist sehr schwer, Data Mapper und Domain-Objekt sind diese Bedenken zu trennen, so haben Sie einen definierten Satz von Code verschiedene Aspekte für Sie „Domäne“ oder „Einheit“ Objekte zu tun.

ich persönlich vorziehen, nicht, dass Sie gefragt, mit der Trennung in Domain-Objekt, Data Mapper gehen, wahrscheinlich ein Montagemuster verwenden und sogar Muster, das eine Datenübertragung klare Trennung von zu gewährleisten, was die oberen einer zwischen der Datenbank Daten geschieht Ebene eine Anwendung.

... elegante und einfache Trennungen immer helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top