Hay tres relaciones más comunes entre clases: dependencia (usos-a), agregación (HAS-A) y herencia (IS-A).
Tomemos el sistema de pedidos de librería en línea como ejemplo para explicar los conceptos de estas tres relaciones en detalle.
La función principal del sistema de pedidos de librería en línea es: los usuarios registrados pueden iniciar sesión en la librería en línea para comprar libros, completar pedidos en línea y pagar la compra de libros. Cuando la librería confirma que se ha recibido el pago de la compra, el libro se enviará por correo de acuerdo con la dirección dejada por el usuario. Se pueden establecer varias categorías en este sistema, incluidos libros, cuentas, pedidos, direcciones, etc., como se muestra en la figura a continuación:
Dependencia (usos-a)
Las dependencias son las relaciones más comunes en la clase. Por ejemplo, la clase de pedido debe acceder a la clase de cuenta del usuario, por lo que la clase de cuenta debe ser referenciada en la clase de pedido, es decir, la clase de pedido depende de la clase de cuenta, pero la clase de libro no necesita confiar en la clase de cuenta.
Si modifica la clase de cuenta, afectará la clase de pedido. La esencia de la dependencia es que los métodos en una clase pueden operar instancias de otra clase. En la programación real, se recomienda minimizar el número de clases interdependientes. Como se muestra en la figura a continuación:
Agregación (ha-a)
Debido a que el orden debe indicar qué libros ordenar, esto involucra la categoría de libro, es decir, incluye la categoría de libros. La diferencia entre la agregación y la dependencia es que la clase de pedido puede no poseer todos los objetos de clase de cuenta, sino que debe poseer todos los objetos de clase de libro, porque los objetos de la clase de libro son el propósito principal del pedido, como se muestra en la figura a continuación:
heredar
La herencia significa que una clase puede llamar a todos los miembros de datos de otra clase y no necesita ser redefinido en la clase actual. Este capítulo ya lo ha explicado muy claramente.