Was ist der Unterschied zwischen den Mustern Data Mapper, Table Data Gateway (Gateway), Data Access Object (DAO) und Repository?

Ich versuche, meine Fähigkeiten als Designmuster aufzufrischen, und ich bin gespannt, was die Unterschiede zwischen diesen Mustern sind. Alle scheinen dasselbe zu sein - kapseln Sie die Datenbanklogik für eine bestimmte Entität, sodass der aufrufende Code keine Kenntnis von der zugrunde liegenden...