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
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.
- 1. Desarrollo de Xcode C++, se necesita aclaración
- 2. En C++ punteros y referencias, se necesita aclaración
- 3. Realización de solicitudes GET y POST desde una aplicación de iPhone - Se necesita aclaración
- 4. Alineación de línea de caché (Necesita aclaración del artículo)
- 5. ¿Qué es una puerta de enlace SMS
- 6. ¿Cómo crear una puerta de enlace SMS?
- 7. Cola llena, profundidad de la cola de bloqueo, se necesita aclaración
- 8. glVertexAttribPointer aclaración
- 9. Relación entre JTable, TableModel y TableData
- 10. aclaración de declaración de propiedad de iOS
- 11. GC aclaración de salida
- 12. C# - Propiedad Aclaración
- 13. Necesita aclaración sobre el uso de Django 1.4 Form Wizards, específicamente pre-llenado y guardado
- 14. Aclaración: MVC, MVP, MVVM
- 15. Dada una secuencia de audio, encontrar cuando una puerta se cierra (cálculo nivel de presión sonora?)
- 16. shutil.rmtree() aclaración
- 17. Se necesita aclaración de Flex: ancho, mínimo (máximo) Ancho, explícito Ancho, explícitoMin (máximo) Ancho, medido Ancho, medidoMin Ancho, porcentaje Anchura
- 18. Pregunta/aclaración de PHP XSS
- 19. Modelo de proceso minFreeThreads aclaración
- 20. Aclaración de Dapper Ejemplo Código
- 21. MVC 4 SPA (Aplicación de una sola página) aclaración
- 22. Configuración de SwipeGestureRecognizer, aclaración necesaria
- 23. puerta corredera Elemento de botón se rompió en Firefox solamente
- 24. Aclaración de referencias en C++
- 25. C# 'es' operador Aclaración
- 26. primavera Integración de puerta de enlace sin argumentos
- 27. Se necesita ayuda con una consulta SQL
- 28. ¿Cómo se diferencia una 'estructura const' de una 'estructura'?
- 29. ByRef vs ByVal Aclaración
- 30. ¿Qué se necesita para hacer una "compilación"?
Gracias por su ayuda. – Alex
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 :). –
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