No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Herencia y Composición

12/14
Recursos

Aportes 6

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Herencia y composición

Composición sobre herencia.

Usar menos herencias para no crear taxonomías complejas.

Herencia:

  • La subclase y la superclase está unidas
  • La subclase no puede ordenarle a la superclase
  • Para reusar código podemos crear clases intermedias, para reutilizarlas en las distintas subclases

Composición:

Es una relación entre 2 clases dónde una necesita de otra para funcionar.

  • “Carro” necesita “Motor” para

    funcionar

En vez de heredar de una clase base que tenga el motor, podemos tener este elemento como parte de las propiedades de una clase. Así como tenemos motor, podemos tener llantas y asientos.

Hay un concepto muy parecido a la composición que es la agregación, el cual se abordará más adelante.

Aporte de Josshua Fletes

¡Hola!

Te dejo un ejemplo para que quede un poco más claro el concepto de composición de clases en TypeScript:

  interface UserSettingsProps {
    workingDirectory: string;
    lastOpenFolder: Date;
    email: string;
    role: string;
    lastAccess: Date;
    name: string;
    gender: Gender;
    birthdate: Date;
  }

  /* Esta va a ser una composición, una clase que compone otras clases */
  class UserSettings {
    public person: Person;
    public user: User;
    public settings: Settings;
    constructor({
      name,
      gender,
      birthdate,
      email,
      role,
      lastAccess,
      workingDirectory,
      lastOpenFolder,
    }: UserSettingsProps) {
      this.person = new Person({ name, gender, birthdate });
      this.user = new User({ email, role, lastAccess });
      this.settings = new Settings({ workingDirectory, lastOpenFolder });
    }
  }

Y recuerda: "favorecer la composición sobre la herencia".

Herencia y composición

Herencia:

  • La subclase y la superclase está unidas
  • La subclase no puede ordenarle a la superclase
  • Para reusar código podemos crear clases intermedias, para reutilizarlas en las distintas subclases


Composición: Es una relación entre 2 clases dónde una necesita de otra para funcionar.

  • “Carro” necesita “Motor” para funcionar

Mejor la composición ya que a futuro es mas fácil de mantener

Actualmente ya uso composicion para mis componentes en React y es muy util. Hay que ver como se comporta en escenarios como una API con sus servicios que manejen Clases/Modelos/Tablas

En la programación orientada a objetos (POO), tanto la **composición** como la **agregación** son formas de asociación que describen relaciones entre clases. Sin embargo, tienen diferencias importantes en cuanto a la vida útil de los objetos involucrados: **Agregación**: Es una relación "tiene-un" donde los componentes pueden existir independientemente. Por ejemplo, un equipo de fútbol tiene jugadores; si se disuelve el equipo, los jugadores siguen existiendo. **Composición**: Es una relación "tiene-un" donde los componentes no pueden existir sin el conjunto. Por ejemplo, un libro tiene páginas; si se destruye el libro, las páginas también dejan de existir.