Pregunta

Tengo una clase de datos con los siguientes métodos:

  • ExecuteUDIQuery (consulta de cadena)
  • ExecuteSelectQuery (consulta de cadena)
  • ExecuteSP (string anme, string [,] params)

Tengo muchas clases que usan la clase de datos. Ahora quiero crear un diagrama de clase, pero no sé qué tipo de relación tienen las clases con la clase de datos. ¿Es un compuesto? ¿Es 1: 1 o ...?

Un ejemplo de una clase que usa la clase de datos es la clase Staff. Esta clase tiene un método Load (), que cargará un objeto de personal con el ID del miembro del personal. Este método contiene una consulta que se pasa al método ExecuteSelectQuery (consulta de cadena) de la clase de datos.

EDITAR: La clase de datos no es estática. Sin embargo, tengo mis dudas. En realidad no sé qué hacer. El punto es que lo único que hace es ejecutar consultas y devolver los resultados.

¿Fue útil?

Solución

Sugeriría que es una relación de dependencia usage .

Consulte aquí para una breve descripción.

Otros consejos

Me gustaría consultar el nombre de sus clases. un nombre de clase normalmente debe ser un sustantivo singular. Ejemplos;

  • ventana
  • persona
  • Transacción

Los datos son plurales, y en cualquier caso creo que deberían ser Base de Datos.

De manera similar para el personal: una vez más en plural, creo que debería ser MemberOfStaff. A menos que, por supuesto, se trate de una lista de miembros del personal, en cuyo caso lo llamaría algo como Departamento, Proyecto o División, sea cual sea el dominio de su problema.

Encontrarás que encontrar buenos nombres para las clases es sorprendentemente difícil, pero vale la pena el esfuerzo.

La diferencia entre agregaciones, compuestos y relaciones 1 en 1 es un tanto vaga y algo arbitraria.

Uso la agregación (diamante abierto) si una clase es propietaria de la otra clase (es responsable del ciclo de vida).

Uso relaciones 1 en 1 en todos los demás casos.

¿La clase está instanciada por las clases que la usan o los métodos son estáticos? Si son estáticos, representaría esto como una dependencia no calificada (flecha punteada que señala desde las clases que usan la clase de datos a la clase de datos)

Si las clases que usan la clase de datos crean su propia instancia privada de esa clase, esta sería una composición 1: 1 (asumiendo que el ciclo de vida de la instancia de la clase de datos está vinculado al objeto que lo está utilizando)

No puedo abstenerme de comentar su diseño general. Intentaría mover el método de carga fuera de la clase de personal, para que esta clase no dependa directamente de la clase de datos.

Dentro del alcance de su diseño existente, sugeriría lo siguiente: Si la clase de personal contiene una variable de instancia de la clase de datos, entonces es una asociación. Si la clase de datos se crea una instancia solo para recuperar la instancia, es solo una dependencia de un tipo dado, como dice @toolkit.

No hay suficientes datos.

Danos algunos esquemas de clase o algo así. Por lo que puedo ver, no habría llamado a esto una clase de datos (se parece más a un accessor ) que suena como si pudiera ser un singleton (muchos : 1, agregación o asociación), o si se crea una instancia, será un componente 1: 1.

  

Ahora quiero crear un diagrama de clase, pero no sé qué tipo de relación tienen las clases con la clase de datos.

Tampoco nosotros, solo describimos la clase de datos y no dijimos cómo Staff recibe los datos que utiliza.

Si el Personal se aferra a una o más instancias de la clase de datos, entonces hay una asociación entre el Personal y los Datos, o el Personal tiene un atributo de tipo Datos (si los Datos tienen valor semántico).

Si se hace referencia a las instancias de datos por varias instancias de Staff, y sus ciclos de vida dependen de que las instancias de Staff hagan referencia a ellas, entonces esto puede mostrarse como una relación de agregación. Si las instancias de datos no se comparten entre las instancias de personal y sus ciclos de vida dependen de la referencia, entonces esto se puede mostrar como una relación de composición.

Si X no retiene las instancias de datos que usa, entonces una relación de uso es apropiada.

La dependencia y el uso son los dos tipos más débiles de " conectores " ;. Podría considerar estereotipos, palabras clave para refinar la relación. Puede encontrar que los trabajos de creación de instancias, llamadas, creación y envío de estereotipos. Sin más información, aunque la respuesta correcta parece ser el uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top