Active record pattern

Active record è un design pattern architetturale utilizzato in software e librerie a oggetti che devono persistere dati in memoria in un database relazionale. È stato descritto da Martin Fowler nel 2003 nel libro Patterns of Enterprise Application Architecture.[1]

Un oggetto conforme al pattern active record espone metodi che permettono di effettuare operazioni di inserimento, modifica ed eliminazione di un singolo record di database, e proprietà che corrispondono alle colonne del record. Una tabella corrisponde ad una classe, mentre un record corrisponde ad un istanza di quella classe. Il pattern prevede che modifiche ad un'istanza di una classe di modello corrispondano a rispettive query che applicano le stesse modifiche sul record sottostante.

Esempio

Ad esempio, definita in un database una tabella articoli, con colonne titolo e autore, ed una classe Articolo che implementa il pattern active record, lo pseudocodice:

articolo = new Articolo()
articolo.titolo = "Il pattern active record"
articolo.autore = "Martin Fowler"
articolo.save()

risulterà in una INSERT query all'interno della tabella articoli:

INSERT INTO articoli (titolo, autore) VALUES ("Il pattern active record", "Martin Fowler");

Utilizzando invece la classe Articolo per accedere ai valori inseriti nella tabella:

articoli = Articoli.find_by(autore="Martin Fowler")

risulterà in una SELECT effettuata sulla tabella secondo le specifiche richieste:

SELECT * FROM articoli WHERE autore = "Martin Fowler";

Note

  1. ^ Active Record, su martinfowler.com. URL consultato il 4 ottobre 2024.

Voci correlate