Sunteți pe pagina 1din 4

Fundamentos POO

La POO es una técnica para desarrollar soluciones computacionales utilizando


componentes de software (objetos de software).

Objeto: Componente o código de software que contiene en sí mismo tanto sus


características (campos) como sus comportamientos (métodos); se accede a través de su
interfaz o signatura.

Campo: Es una característica de un objeto, que ayuda a definir su estructura y permite


diferenciarlo de otros objetos. Se define con un identificador y un tipo, el cual indica los
valores que puede almacenar. El conjunto de valores de los campos definen el estado del
objeto.

Método: Es la implementación de un algoritmo que representa una operación o función


que un objeto realiza. El conjunto de los métodos de un objeto determinan el
comportamiento del objeto.

La POO es un paradigma de la programación de computadores; esto hace referencia al


conjunto de teorías, estándares, modelos y métodos que permiten organizar el
conocimiento, proporcionando un medio bien definido para visualizar el dominio del
problema e implementar en un lenguaje de programación la solución a ese problema.

La POO se basa en el modelo objeto donde el elemento principal es el objeto, el cual es


una unidad que contiene todas sus características y comportamientos en sí misma, lo cual
lo hace como un todo independiente pero que se interrelaciona con objetos de su misma
clase o de otras clase, como sucede en el mundo real.

Anterior al paradigma de objetos, está el paradigma algorítmico o de procesos, el cual se


fundamenta en los procesos o funciones que se llevan a cabo en el mundo real dentro del
dominio del problema analizado. Se refiere a lo que entra, como lo maneja el proceso, y lo
que sale del proceso. La programación tradicional la sustentan los procesos, algoritmos,
bloques de construcción modulares cuya abstracción va de lo general a lo particular,
mientras que en la POO tiene como marco de referencia conceptual el objeto, el cual
pertenece a una clase que agrupa a todos compañeros con las mismas características y un
comportamiento similar.

Una ventaja de la POO frente al paradigma algorítmico es la facilidad que brinda a través
de sus herramientas, de concebir, analizar, modelar, diseñar e implementar el mundo real
de manera fiel a como se presenta en la realidad; el paso que hay desde la concepción y
asimilación del problema hasta la implementación del mismo es un proceso que se hace
de manera casi natural. Esto porque el mundo está lleno de objetos reales, los cuales se
pueden representar como tales en una solución computarizada.
Modularidad

Proceso de crear partes de un todo que se integran perfectamente entre sí para que
funcionen por un objetivo general, y a las cuales se les pueden agregar más componentes
que se acoplen perfectamente al todo, o extraerle componentes sin afectar su
funcionamiento. En el caso que se requiera actualizar un módulo, no hay necesidad de
hacer cambios en otras partes del todo. Un ejemplo clásico es un conjunto de módulos
que, al integrarlos conforman un armario, el cual puede agregarle más funcionalidad si se
le agregan más módulos, o al contrario. También se puede cambiar su finalidad si se
acomodan esos módulos para darle otro objetivo: volverlo una mesa.

Esto ayuda a la descomposición de problemas en subproblemas, es decir, a la solución de


problemas por composición de soluciones a subproblemas.

Reutilización

Capacidad de usar un mismo código para varias implementaciones o necesidades


(desarrollos); para esto se debe tener en cuenta:

 Polimorfismo: Esta propiedad indica que un elemento puede tomar distintas


formas. Podemos definirlo como el uso de varios tipos en un mismo componente o
función. Por ejemplo, una función que sume dos operandos, la cual maneja, o dos
números o dos cadenas, para retornar un total de una suma o de una
concatenación. También se denomina subsumption (más delante de detalla este
concepto).
 Genericidad: Usar algoritmos genéricos para resolver varias situaciones, como
acceso a varios motores de bases de datos de forma transparente, como el PEAR
de PHP. Consiste en parametrizar una función con varios tipos de datos donde ella
misma en su cuerpo decida cómo operar, como la ut0110.4gl.
 Operaciones Relacionadas: Todas las operaciones de un módulo deben estar
dentro de él, como parte de su cuerpo ...
 Caja negra: Saber qué entra y qué sale (la interfaz del módulo: signatura) y no
cómo lo hace (su implementación), como la co0020.4gl.
 Sobrecarga: Modalidad de herencia que permite usar el mismo módulo para
diferentes implementaciones de una operación, es decir, usando diferente
signatura: una función que pueda recibir un parámetro, o dos, o ninguno; pero
opera correctamente con cualquiera de ellos con que se lo invoque, está
sobrecargada; por ejemplo, la función saludar(), cuando va sin parámetros retorna
la cadena “Hola”, cuando se invoque con un nombre, (saludar(var_nombre)),
retorna “Hola $var_nombre”, y así sucesivamente. Esto debe manejarse por código
dentro de la función.

Visión POO

La visión OO se basa en la siguiente analogía:

1. Construcción de un modelo mecánico de un sistema físico a partir de objetos


concretos. Los objetos aquí serían, en un modelo de una pista de carreras: los
autos, las carreteras, las llegadas, las graderías, espectadores, etc. En un modelo
de un sistema planetario, tenemos los objetos concretos: los planetas, los órbitas,
el sol, la energía, etc.
2. Construcción de un modelo algorítmico de un sistema físico a partir de objetos
de software. Los objetos aquí serían: rutinas de conexión a DB, shorts, validación
de acceso, despliegue, impresiones, etc.

Este concepto de POO se puede ver como una intuitiva correspondencia entre un
software de simulación de un sistema físico y el sistema físico en sí (o su modelo
mecánico).

Modelo algorítmico: Análisis, diseño e implementación de un software usando objetos de


“software”.

Objetos de software : Componentes que integran o conforman el modelo; pueden ser


unidades de código para resolver situaciones específicas, shorts, uso de DB, prints,
funciones, vectores, etc.

Modelo mecánico: Análisis, diseño e implementación de prototipo a escala de un sistema


físico usando objetos concretos.

Objetos concretos: Partes físicas del modelo mecánico, ojo del modelo, no del sistema
real; o sea, los objetos planeta no son los planetas reales.

Modelo: Es una vista de un sistema del mundo real, es decir, una abstracción de dicho
sistema considerando un cierto propósito. Así, el modelo describe completamente
aquellos aspectos del sistema que son relevantes al propósito del modelo y a un
apropiado nivel de detalle.

Diagrama: Representación gráfica de un modelo.

Abstracción: Capacidad del ser humano para entender una situación excluyendo detalles y
sólo viéndola a alto nivel. El hombre ha comprendido el mundo con la abstracción. Esta
propiedad permite distinguir a un objeto de los demás, observando sus características y
comportamientos, pensando en qué es y no en cómo se codificaría en un lenguaje. Con la
abstracción se destaca lo importante y se ignora lo irrelevante, o sea, hay ocultamiento de
información. Hay abstracción de datos al declarar una variable tipo integer, ya que
internamente el compilador lo implementa en 2 bytes, lo cual es transparente al
programador, o al declarar una variable date, el compilador controla los días de los meses,
acepta sólo operaciones válidas entre las fechas, permitiendo al programador abstraerse
de esos detalles. Estos tipos de datos abstractos coleccionan valores y operaciones, los
cuales se usan transparentemente sin importar su implementación: otro lo implementa y
yo lo uso.

La reutilización es la principal característica de la POO, la cual se logra mediante:

 Encapsulación de información: Ocultamiento de información, datos o funciones


especiales a los usuarios. En el caso de la programación, el encapsulamiento es lo
que permite que tanto la estructura (campos) como el comportamiento (métodos)
se encuentren dentro del mismo cuerpo de código de la clase con la que se crean
los objetos. Dentro de la clase se deben agrupar tanto la información o datos de
los campos como las operaciones o métodos o funciones que operan sobre esta
información.
 Herencia: Propiedad que permite a los objetos ser construidos a partir de otros; es
recibir de un módulo superior sus características, tales como atributos o funciones
(campos y métodos o comportamientos), para usarlos en el módulo actual.
Heredar es compartir atributos.
 Sobreescritura ( override ): Posibilidad de heredar un método de un módulo y
cambiarle el comportamiento en el heredero, con la opción de poder usar el
original, si se desea.
 Métodos unidos a los objetos: los métodos de un objeto son inseparables y
siempre formarán parte de su cuerpo, como un todo.
 Noción de self : unicidad de los objetos; son únicos y no se repiten, aunque sean
de la misma clase. Así como se puede definir varias variables del tipo INT cada una
de las cuales es única, se puede crear o instanciar varios objetos de una misma
clase.

S-ar putea să vă placă și