Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

ActiveRecord contro Data Mapper

Link copiato negli appunti

Sembra un'eterna lotta quella che mette a confronto i sostenitori di questi due pattern: se analizziamo le principali feature e problematiche dei due sistemi forse possiamo schiarirci le idee.

L'active record permette di mappare 1:1 un oggetto con la sua rappresentazione sul database: questo implica quindi, che le colonne a livello di DB, rappresentino gli attributi di un oggetto.

Il vantaggio di questo tipo di implementazione è, chiaramente, una barriera inferiore per l'adozione per paradigma di persistenza, nonché una grossa facilità , lato software, per persistere i dati da un oggetto al DB.

Doctrine 1.2 ha, per esempio, ottenuto grande attenzione proprio per l'implementazione molto chiara di questo pattern.

Il Data mapper invece, proposto nel

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, introduce un layer che si occupa di mappare un oggetto, aggiungendo metadati, senza alterarne la sua logica di dominio: questo permette di non infettare l'oggetto stesso con informazioni che non gli appartengono, come il modo in cui viene persistito.

In Doctrine2, questo viene raggiunto attraverso, per esempio, le annotations.

Un mapper introduce meno inquinamento nei propri oggetti e ne permette un testing unitario maggiormente facilitato: tutto questo al prezzo di gestire ed iniettare un'istanza unica del mapper nelle nostre applicazioni, pena l'inconsistenza della Unit Of Work.

àˆ chiaro come l'utilizzo di un data mapper sia ben più dispendioso (si pensi a Symfony2) e meno immediato di avere a disposizione un ORM con un'implementazione active record, col vantaggio, però, di avere un architettura e un dominio più puliti.

Al di là  delle semplificazioni (notevoli), che si devono fare in questo contesto, voi che idea vi siete fatti? Avete mai provato entrambe le implementazioni?

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Se vuoi aggiornamenti su Essentials inserisci la tua email nel box qui sotto:

Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.

Ti consigliamo anche