2011-07-22 12 views
7

Recientemente he estado leyendo sobre, TableData Gateway y RowData Gateway.According a "patrones de arquitectura de aplicación empresarial" ofertas RDG con un registro a la vez y TDG se ocupa de una tabla completa. Pero ambos patrones son muy similares, encapsulan consultas SQL y devuelven un solo registro o muchos registros en un conjunto de registros en función de las consultas que realizamos. Realmente no puedo imaginar cuándo preferir TDG para RDG. Sería muy útil para aclarar la diferencia con alguna explicación. Según Martin Fowler TDG es lo mismo que RDG cuando devuelve un registro. ¡Pero también podemos usar RDG para múltiples registros también! entonces ¿por qué usar TDG? Cualquier ayuda será apreciada. Gracias.puerta de entrada ¿Cómo se diferencia de TableData Rowdata Gataway? .. necesita una aclaración

Respuesta

8

Row Data Gateway encapsula el acceso a una fila en la base de datos, mientras que Table Data Gateway encapsula el acceso en el nivel de la tabla, y no me parece que una sea una forma degenerada de la otra.

Si bien Table Data Gateway tiene métodos de búsqueda que devuelven RecordSets, con Row Data Gateway, necesita una clase Finder distinta que devuelva una clase de puerta de enlace por fila.

Si usa cualquiera de las opciones y las usa son decisiones complejas relacionadas con sus elecciones de otros patrones que está utilizando.

De sus discusiones en el "cuándo usarlo" secciones sobre los patrones, si se utiliza el patrón Domain Model, preferiría usar Active Record sobre cualquiera. Ambos patrones de puerta de enlace son adecuados para usar en combinación con Transaction Script.

Table Data Gateway es más simple, por lo que si hace lo que necesita, podría ser la opción correcta.

Es probable que nunca use estos dos patrones en una sola aplicación.

+0

Gracias por su ayuda. – Alex

+1

Lo curioso es que una aplicación heredada actual que estoy refabricando pero que no reescribe realmente hace un uso sensato de todos estos registros más activos :). –

+0

El "código heredado" a menudo difiere de su alternativa sugerida por trabajar y escalar. --- [Bjarne Stroustrup] (https://en.wikiquote.org/wiki/Bjarne_Stroustrup) – DaveBoltman

Cuestiones relacionadas