No estoy seguro de cómo nombrar clases de almacén de datos al diseñar la capa de acceso a datos de un programa (DAL).Terminología de persistencia de objetos: 'repositorio' frente a 'almacenar' frente a 'contexto' frente a 'retriever' vs. (...)
(Por de datos de clase del almacén, me refiero a una clase que se encarga de leer un objeto persistido hasta la memoria, o que persista un objeto en memoria.)
Parece razonable para nombrar una clase de almacén de datos de acuerdo con dos cosas:
- qué tipos de objetos maneja;
- si carga y/o persiste tales objetos.
⇒ Una clase que carga Banana
objetos se puede llamar, p. BananaSource
.
No sé cómo ir sobre el segundo punto (es decir, el bit Source
en el ejemplo). He visto diferentes nombres aparentemente utilizados para ese fin:
- repositorio: esto suena muy general. ¿Esto denota algo accesible para lectura/escritura?
- tienda: esto suena como algo que potencialmente permite el acceso de escritura.
- contexto: suena muy abstracto. Lo he visto con LINQ y mapeadores relacionales de objetos (ORM).
P.S. (varios meses después): Esto es probablemente apropiado para contenedores que contienen objetos "activos" u otros objetos supervisados (el patrón de la Unidad de Trabajo viene a la mente). - retriever: suena como algo de solo lectura.
- fuente & sink: probablemente no es apropiado para la persistencia del objeto; un mejor ajuste con flujos de datos?
- lector/escritor: bastante claro en su intención, pero suena demasiado técnico para mí.
¿Son estos nombres arbitrarios, o existen significados ampliamente aceptados/diferencias semánticas detrás de cada uno? Más específicamente, me pregunto:
- ¿Qué nombres serían apropiados para los almacenes de datos de solo lectura?
- ¿Qué nombres serían apropiados para almacenes de datos de solo escritura?
- ¿Qué nombres serían apropiados para los almacenes de datos de solo lectura que se actualizan ocasionalmente?
- ¿Qué nombres serían apropiados para la mayoría de las tiendas de datos solo de escritura que se leen ocasionalmente?
- ¿Un nombre se ajusta a todos los escenarios igualmente bien?
Buena pregunta, he estado considerando esto durante mi proyecto actual. Se me ocurrió usar 'Store' para lectura/escritura, y' Service' solo lectura (por ejemplo 'UserService.GetUserById (1)'). Lo único que no me gusta es que para recordar el nombre de algo tengo que saber/recordar su comportamiento. No me sienta bien que esté usando 2 nombres diferentes de esta manera. Interesado en saber si hay una convención estándar (ish). – fearofawhackplanet