Saltearse al contenido

Abstracción

Pilares de POO

La programación orientada a objetos (POO) se basa fuertemente en cuatro pilares fundamentales: abstracción, encapsulamiento, herencia y polimorfismo. Estos pilares nos permiten modelar el mundo real de una forma más sencilla y eficiente.

Abstracción

Para comenzar, hablaremos a cerca de la abstracción. La abstracción es un proceso que realizamos de forma natural, en el cual separamos las características más importantes de un objeto, de las que no lo son.

Para esto, debemos tener en cuenta el ámbito sober el cual desarrollaremos nuestro sistema, ya que dependiendo de este, las características que consideremos importantes pueden variar.

En palabras simples, la abstracción es el proceso que nos permite modelar objetos de la vida real, y representarlos como componentes de un sistema de software.

Este es el primer paso que debemos realizar al momento de desarrollar un sistema de software, y que a menudo se pasa por alto. Sin embargo, es un paso fundamental, ya que un sistema de software que no se encuentra bien abstraído, no podrá ser escalable, y por lo tanto, no podrá ser modificado o mejorado de forma sencilla.

Una vez más, al momento de realizar la abstracción, debemos ser capaces de identificar y dejar visibles aquellas características y comportamientos que son relevantes, ocultando los detalles de implementación.

Por ejemplo, si estamos modelando un sistema para una biblioteca, podemos identificar los siguientes objetos:

  • Libro
  • Usuario
  • Préstamo

Para cada uno de estos objetos, podemos identificar sus características y comportamientos más relevantes:

  • Libro
    • Título
    • Autor
    • Editorial
    • Año de publicación
    • ISBN
    • Cantidad de ejemplares
    • Cantidad de ejemplares disponibles
    • Cantidad de ejemplares prestados
    • Cantidad de ejemplares reservados
  • Usuario
    • Nombre
    • Apellido
    • Rut
    • Fecha de nacimiento
    • Dirección
    • Teléfono
    • Email
  • Préstamo
    • Fecha de préstamo
    • Fecha de devolución
    • Libro
    • Usuario

Como podemos ver, para cada uno de estos objetos, hemos identificado sus características más relevantes, y las hemos separado de las que no lo son. Por ejemplo, para el objeto Libro, hemos identificado que el título, el autor, la editorial, el año de publicación y el ISBN son características relevantes, mientras que la cantidad de ejemplares, la cantidad de ejemplares disponibles, la cantidad de ejemplares prestados y la cantidad de ejemplares reservados, son características que no son relevantes para el sistema. Esto no quiere decir que estas características no sean importantes, sino que no son relevantes para detallarlos en nuestro sistema de software.

Abstracción

Así podremos llevar estos objetos a clases, y definir sus atributos y métodos.

Este proceso puede llevar tiempo en desarrollarse, por lo cual debemos prestar mucha atención al momento de analizar un problema, y sobre todo practicar.