Вы находитесь на странице: 1из 35

PROGRAMACIN

ORIENTADA
A OBJETOS

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Contenido
Que es la Programacin Orientada a Objetos
(POO)?

Abstraccin

Encapsulamiento

Modularidad

Jerarquias

Polimorfismo

Tipos de Datos

Concurrencia y Persistencia

CLICK AQUI
www.paraprogramadores.com 3
facebook.com/paraprogramadores01/1
Que es la
programacin
orientada a
objetos?

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Que es la Programacion Orientada a Objetos?

La programacin orientada a objetos (POO) es una forma de pro-


gramacin en computadoras que surge en los aos 70 pero tiene
un desarrollo sorprendente los aos 90 al utilizarlo en las micro-
computadoras.

Se diferencia de la programacin clsica o estructurada en que las


instrucciones hacen referencia a los elementos del entorno. Esos
elementos representan objetos; y todos los datos y todas las ac-
ciones que se hagan con ellos o sobre ellos, estn encapsuladas u
ocultas en el objeto.

Como su nombre lo indica se utilizan objetos para disear sus apli-


caciones y no algoritmos, cada objeto es una instancia de alguna
clase. Las clases estn relacionadas con otras clases por medio de
relaciones de herencia.

Una clase es un modelo que define un conjunto de variables, el


estado y m todos apropiados para operar con dichos datos -el
comportamiento. Cada objeto creado a partir de la clase se deno-
mina instancia de la clase. Las clases son un pilar fundamental de
la programacin orientada a objetos.

Objeto

Un objeto es una entidad provista de un conjunto de propiedades o


atributos (datos), de un comportamiento o funcionalidad (mtodos)
y de sus posibles relaciones con otros objetos.

El concepto de objeto tiene un concepto equivalente al objeto de


nuestro mundo real. En nuestro entorno siempre estamos en cons-
tante relacin con objetos: los creamos, los usamos, los modifica-
mos cambiando sus atributos, caractersticas o propiedades, los
relacionamos con otros objetos, etc.

CLICK AQUI
6 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Los lenguajes orientados a objetos cumplen con lo siguiente:

Soportan objetos que son abstracciones de datos con una interfaz


de operaciones con nombre y un estado local oculto.

Los objetos tienen un tipo asociado (la clase).

Los tipos (clases) pueden heredar atributos de los supertipos (su-


perclases).

Por ejemplo tomemos el objeto Carro.

Un carro es un objeto bastante pesado que tiene un conjunto de


propiedades como su identificacin (placa), color, marca, modelo,
accesorios, etc. Tiene tambin un conjunto de funciones como la de
desplazarse, detenerse, ponerse en marcha.

Podemos cambiarle de color, aumentar o quitar sus accesorios;


es decir, podemos modificar sus propiedades. Tienen de la capa-
cidad de ser activados para poner en accin sus funcionalidades;
es decir, disponemos de un procedimiento para ponerlo en marcha,
avanzar en retroceso, detenerlo, voltear a la izquierda o derecha;
es decir, mediante un conjunto de mtodos podemos darle uso al
objeto automvil.

En la POO el objeto es el carro; las propiedades del carro son sus


caractersticas y los mtodos lo constituyen las funcionalidades o
procedimientos con los cuales hacemos uso del objeto y modifica-
mos su estado o contenido.

CLICK AQUI
www.paraprogramadores.com 7
PROGRAMACIN ORIENTADA A OBJETOS

Propiedades

Son variables que describen algunos aspectos o caractersticas del


objeto en el que estn incluidas.

Las propiedades de un objeto toman un valor que puede ser perma-


nente o puede cambiar. Por ejemplo la propiedad color del objeto
carro tomar un valor en concreto: verde, rojo, etc. El valor concreto
de una propiedad de un objeto se llama estado del objeto. Pode-
mos modificar la propiedad de un objeto accediendo a su estado.

Las propiedades de un objeto pueden tomar uno o varios valores.


Estos valores pueden ser de cualquier tipo de dato (String o cadena
de caracteres; entero, etc. ).

Para acceder al estado de un objeto en POO se usa la siguiente


sintaxis:

MiCarro.Color = Rojo
Aqu, MiCarro es una instancia del objeto Carro; vale decir, es una
copia.

Mtodo

Un mtodo es una accin que el objeto reconoce y sabe cmo


ejecutarlo. Es una accin u operacin que realiza acceso a los da-
tos. Se puede definir como un programa o procedimiento escrito en
algn lenguaje que est asociado a un objeto determinado y cuya
ejecucin slo puede desencadenarse a travs de un mensaje reci-
bido por el objeto o por sus descendientes.

El objeto carro reconoce al procedimiento Frenar y sabe cmo


debe realizar la accin de frenado.

CLICK AQUI
8 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Ejemplo de otro Objeto:

Objeto: Estudiante

El objeto estudiante tiene un conjunto de atributos o propiedades


como:

Edad
Sexo
Peso
Altura
Nombre
Color de cabello
Etc

Existen un conjunto de acciones o mtodos, que se realizan sobre


l:

hablar
comer
dormir
caminar
vestirse
correr
detenerse

Algunas de estas propiedades son heredadas de sus padres, otros


objetos de jerarqua superior.

El objeto estudiante est relacionado con otros objetos como her-


mano, amigo, vecino. Varios de estos objetos forman una clase: la
clase Persona.

CLICK AQUI
www.paraprogramadores.com 9
PROGRAMACIN ORIENTADA A OBJETOS

Diseo orientado a objetos y el Anlisis orientado a objetos.

El primero es un mtodo de diseo que abarca el proceso de des-


composicin orientado a objetos y una representacin para descri-
bir los modelos lgicos y fsicos, as como los modelos estticos y
dinmicos del sistema de diseo.

El segundo enfatiza en la construccin de modelos del mundo real


utilizando una visin orientada a objetos es un mtodo de anlisis
que evala los requisitos desde la perspectiva de la clase.

Hay que tener en cuenta que los anlisis orientados a objetos sir-
ven como modelos de los que se puede partir para un diseo orien-
tado a objetos.

Elementos del Modelo de Objetos

Se utilizan varios estilos de programacin desde orientados procedi-


mientos, objetos, lgica, reglas y restricciones, los cuales el tipo de
abstraccin que se usa son los siguientes en su respectivo orden:
algoritmos, clases y objetos, objetivos expresados como clculo de
predicados, reglas si-entonces, relaciones invariantes. (Invariante:
condicin booleana cuyo valor de verdad debe mantenerse)
Para todo lo orientado a objetos el marco de referencia conceptual
es el modelo de objetos, para ello tenemos 4 elementos fundamen-
tales los cuales son:

1. Abstraccin
2. Encapsulamiento
3. Modularidad
4. Jerarqua
5. Polimorfismo
As mismo este modelo tiene elementos secundarios:
1. Tipos (Tipificacin)
2. Concurrencia
3. Persistencia.

CLICK AQUI
10 www.paraprogramadores.com
Abstraccin

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Abstraccin

Una abstraccin se enfoca en la visin externa de un objeto, sepa-


ra el comportamiento especfico de un objeto, a esta divisin que
realiza se le conoce como la barrera de abstraccin, la cual se con-
sigue aplicando el principio de mnimo compromiso.

Qu es el principio de mnimo compromiso?

Se refiere al proceso por el cual la interfaz de un objeto muestra su


comportamiento especfico y nada ms, absolutamente nada ms.

Qu es una Interfaz?

Una interfaz de objeto permite crear cdigo con el cul se especfi-


ca que mtodos sern implementados por una clase sin necesidad
de definir que harn estos mtodos, dichos mtodos deben ser p-
blicos.

Existe tambin el principio de mnima sorpresa, en el cul una abs-


traccin obtiene el comportamiento completo de algn objeto y por
ende no ofrece sorpresas o efectos laterales que lleguen ms all
del mbito de la abstraccin.

Hay una alta gama de abstracciones que existen desde los objetos
que modelan muy cerca de entidades, a objetos que no tienen ra-
zn para existir, vamos a hacer una rpida mencin de ello.

Abstraccin de Entidades: Es un objeto que representa un mode-


lo til de una entidad que se desea.

Abstraccin de Acciones: Un objeto que representa un conjun-


to de operaciones y todas ellas desempean funciones del mismo
tipo.

Abstraccin de Mquinas virtuales: Un objeto que agrupa opera-


ciones, todas ellas virtuales, utilizadas por algn nivel superior de
control u operaciones (entre ellos podramos hablar de un circuito).

CLICK AQUI
12 www.paraprogramadores.com
Youtube.com/paraprogramadores
PROGRAMACIN ORIENTADA A OBJETOS

Abstraccin de coincidencia: Un objeto que almacena un conjun-


to de operaciones que no tienen relacin entre s.

Modelo contractual de programacin

En dicho modelo podemos mencionar que la vista exterior de cada


objeto define una interfaz del que puedan depender otros objetos,
esta interfaz como bien lo habamos mencionado, establece todas
las suposiciones que pueda hacer un objeto cliente acerca del com-
portamiento de un objeto servidor, es decir la interfaz abarca las
responsabilidades de un objeto, dicho en otras palabras, abarca el
comportamiento del que se le considera responsable.

Un objeto puede actuar y reaccionar de diferentes formas, un con-


junto de operaciones que puede realizar un cliente sobre un objeto
se le denomina protocolo.

No est dems mencionar que toda abstraccin tiene propiedades


estticas y dinmicas.

Propiedades estticas podemos mencionar, el nombre, el tamao,


en algunas ocasiones su contenido.

Propiedades dinmicas podemos mencionar peso, tamao, conte-


nido.

Dependiendo el contexto que se est analizando el contenido u


otras propiedades pueden ser dinmicas como estticas.

Un ejemplo de una abstraccin sobre un Carro.

Supongamos qu en este ejemplo nos estn solicitando la abstrac-


cin de un carro en cuanto a su comportamiento.

La pregunta que hago es Cuales son los comportamientos que tie-


nen todos los carros? con base a esta pregunta, automticamente
fluye nuestra abstraccin del comportamiento de un carro.

CLICK AQUI
14 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Encender Carro
Apagar Carro
Acelerar Carro
Frenar Carro
Retroceder Carro
Parabrisas Carro

Ahora para que puedas ejercitar lo aprendido, puedes realizar


abstracciones de objetos, incluyendo sus caractersticas y el
comportamiento.

CLICK AQUI
www.paraprogramadores.com 15
Encapsulamiento

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS
Encapsulamiento

Es el proceso de almacenar en una misma seccin los elementos


de una abstraccin que constituyen su estructura y su comporta-
miento; sirve para separar el interfaz contractual de una abstrac-
cin y su implantacin.

Esto se consigue a travs de la ocultacin de informacin, que es el


proceso de ocultar Todos los Secretos de un objeto que no apor-
tan a sus caractersticas especficas.

Para que la abstraccin funcione como debe, la implementacin


debe estar encapsulada, nunca est de ms recordar que cada
clase debe tener dos partes, una interfaz y una implementacin.

Existen tres niveles de acceso para el encapsulamiento, los


cuales son:

Pblico (Public): funciones de toda clase pueden acceder a los


datos o mtodos de una clase que se define con el nivel de acceso
pblico. Este es el nivel de proteccin de datos ms bajo.

Protegido (Protected): el acceso a los datos est restringido a las


funciones de clases heredadas, es decir, la funcin miembro de esa
clase y todas las subclases.

Privado (Private): el acceso a los datos est restringido a los m-


todos de esa clase en particular. Este es nivel ms alto de protec-
cin de datos.

El Ejemplo del Carro nuevamente, Usaremos la caracterstica


COLOR.

Contexto 1: Se necesita que cualquiera pueda acceder al color de


un vehculo, entonces:
Opcin a: Declaro entonces COLOR como Privado
Opcin b: Declaro entonces COLOR como Protegido
Opcin c: Declaro entonces COLOR Como Pblico

Si seleccionaste la Opcin C, eso quiere decir que vamos bien.


CLICK AQUI
www.paraprogramadores.com 17
Modularidad

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Modularidad

La modularidad consiste en dividir un programa en mdulos que


puedan compilarse por separado, sin embargo tendr conexiones
con otros mdulos.

La modularidad tambin tiene principios y son los siguientes:

Capacidad de descomponer un sistema complejo.


Capacidad de componer a travs de sus mdulos.
Comprensin de sistema en partes.

Capacidad de descomponer un sistema complejo

En este se descompone un sistema en subprogramas (recuerda


llamarlos mdulos), el problema en general lo divides en problemas
ms pequeos.

Capacidad de componer a travs de sus mdulos

Indica la posibilidad de componer el programa desde los problemas


ms pequeos completando y resolviendo el problema en general,
particularmente cuando se crea software se utilizan algunos mdu-
los existentes para poder formar lo que nos solicitan, estos mdulos
que se integran a la aplicacin deben de ser diseados para ser
reusables.

Comprensin de sistema en partes

El poder tener cada parte separada nos ayuda a la comprensin


del cdigo y del sistema, tambin a la modificacin del mismo, re-
cordemos que si el sistema necesita modificaciones y no hemos
trabajado con mdulos definitivamente eso ser un caos.

Una de las razones por la cul es til hacerlo modular es debido a


que podemos tener los lmites bien definidos y claro es lo ms va-
lioso a la hora de leer el programa, recordemos una de las buenas
prcticas Programe pensando en quien mantendr el cdigo.

CLICK AQUI
www.paraprogramadores.com 19
Jerarquas

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Jerarquas

El comportamiento general de un objeto, en programacin orien-


tada a objetos, puede ordenarse y clasificarse, a esto se le conoce
como Jerarqua.

Herencia

La herencia simple es la relacin de clases ms importantes, es


esencial en los sistemas orientados a objetos, recordemos que la
herencia define una relacin entre clases en la que una de ellas
brinda la estructura de comportamiento definida en una o ms cla-
ses.

La herencia representa una jerarqua de abstracciones en la que


una subclase hereda de una o ms superclases.

Ejemplo:

Un Perro ES UN mamifero, Notes que perro es una subclase de la


superclase mamifero.
Un gato ES UN mamifero.

La herencia implica una relacin de especializacin en la que la


subclase especializa el comportamiento o la estructura ms gene-
ral de sus superclases.

En el ejemplo anterior, podemos observar que la clase perro espe-


cializa a la clase mamifero, sabemos que todos los mamiferos lac-
tan, pero la clase perro le esta dando la especialidad de que ese
mamifero ladr, muerde, etc.

Herencia Mltiple: Como su nombre lo indica, se refiere a la carac-


terstica en la que una clase puede heredar comportamientos de
una o ms superclases.

CLICK AQUI
www.paraprogramadores.com 21
PROGRAMACIN ORIENTADA A OBJETOS

Ejemplo:
SubClase perroCocker:
Caractersticas: travieso, juguetn
SuperClase Perro:

Caractersticas: Ladrar, aullar, etc.

SuperClase Volador

Caractersticas: iniciarVuelo, iniciarAterrizaje, etc..

Ahora bien, si la Subclase PerroCocker heredara de ambas super-


clases (Perro y Volador), obtendramos qu:
Un PerroCocker, es un perro volador.

NOTA: No todos los lenguajes orientados a objetos soportan la He-


rencia Multiple.

La Relacin de Objetos esta relacin se enfoca en la abstraccin


de la vida real de un objeto, esta relacin denota el << parte de >>,
esto permite hablar de niveles de abstraccin altos y bajos, los cua-
les indican la dependencia de una clase a otra.

Una clase tiene un nivel ms alto de abstraccin que cualquiera de


las clases que dependen de ella.

Otro Ejemplo:
Una llanta es << parte de >> un carro.
pero tambin es << parte de >> una moto, un camin, etc.

CLICK AQUI
22 www.paraprogramadores.com
Polimorfismo

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

En programacin orientada a objetos, el polimorfismo se refiere a


la propiedad por la que es posible enviar mensajes sintcticamente
iguales a objetos de tipos distintos. El nico requisito que deben
cumplir los objetos que se utilizan de manera polimrfica es saber
responder al mensaje que se les enva.

La apariencia del cdigo puede ser muy diferente dependiendo del


lenguaje que se utilice, ms all de las obvias diferencias sintcti-
cas.

Por ejemplo, en un lenguaje de programacin que cuenta con un


sistema de tipos dinmico (en los que las variables pueden con-
tener datos de cualquier tipo u objetos de cualquier clase) como
Smalltalk no se requiere que los objetos que se utilizan de modo
polimrfico sean parte de una jerarqua de clases.

En lenguajes basados en clases y con un sistema de tipos de datos


fuerte (independientemente de si la verificacin se realiza en tiem-
po de compilacin o de ejecucin), es posible que el nico modo
de poder utilizar objetos de manera polimrfica sea que compartan
una raz comn, es decir, una jerarqua de clases, ya que esto pro-
porciona la compatibilidad de tipos de datos necesaria para que
sea posible utilizar una misma variable de referencia (que podr
apuntar a objetos de diversas subclases de dicha jerarqua) para
enviar el mismo mensaje (o un grupo de mensajes) al grupo de ob-
jetos que se tratan de manera polimrfica.

No obstante, algunos lenguajes de programacin (Java, C++) per-


miten que dos objetos de distintas jerarquas de clases respondan a
los mismos mensajes, a travs de las denominadas interfaces (esta
tcnica se conoce como composicin de objetos). Dos objetos que
implementen la misma interfaz podrn ser tratados de forma idn-
tica, como un mismo tipo de objeto, el tipo definido por la interfaz.
As, distintos objetos podrn intercambiarse en tiempo de ejecucin
siempre que sean del mismo tipo, y adems con dependencias
mnimas entre ellos.

CLICK AQUI
24 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS
Por estos motivos se considera un buen principio de diseo en pro-
gramacin orientada a objetos el favorecer la composicin de obje-
tos frente a la herencia de clases.

En Java las interfaces se declaran mediante la palabra clave In-


terface. Estas se utilizan para lograr la necesaria concordancia de
tipos que hace posible el polimorfismo, tambin como un contrato
que debe cumplir cualquier clase que implemente una cierta inter-
faz, y como una forma de documentacin para los desarrolladores.

A veces, en la literatura especfica sobre Java se habla de he-


rencia y polimorfismo de interfaces, lo que no concuerda con los
conceptos de la programacin orientada a objetos porque una cla-
se que implementa una interfaz slo obtiene su tipo de datos y la
obligacin de implementar sus mtodos, no copia comportamiento
ni atributos.

Esta terminologa puede llevar a confusin, puesto que en Java a


menudo se utiliza la mal llamada herencia de interfaces para do-
tar a una clase de uno o varios tipos adicionales, lo que unido a la
composicin, evite la necesidad de la herencia mltiple y favorezca
una utilizacin ms amplia del polimorfismo.

No obstante, el uso de una jerarqua de clases como paso previo,


es muy habitual incluso en aquellos lenguajes en los que es posible
prescindir de tal jerarqua, ya que, desde una perspectiva concep-
tual, se puede decir que al pertenecer los objetos polimrficos
a subclases de una misma jerarqua, se asegura la equivalencia
semntica de los mensajes que se invocarn de modo polimrfico.

Por esto, en programacin orientada a objetos a veces se denomi-


na al polimorfismo como polimorfismo de subclase (o de subtipo).

CLICK AQUI
www.paraprogramadores.com 25
PROGRAMACIN ORIENTADA A OBJETOS
En resumen, en la programacin orientada a objetos, la esencia del
polimorfismo no atae a la clase o prototipo de la que provienen los
objetos. Aun as, en los lenguajes basados en clases, es habitual (y
en algunos tal vez sea el nico modo) que dichos objetos pertenez-
can a subclases pertenecientes a una misma jerarqua.

Entonces, el polimorfismo debe verse como una forma flexible de


usar un grupo de objetos (como si fueran slo uno). Podra decirse
que el polimorfismo en esencia refiere al comportamiento de los ob-
jetos, no a su pertenencia a una jerarqua de clases (o a sus tipos
de datos).

Lo anterior se hace an ms evidente en lenguajes de programa-


cin orientada a objetos basados en prototipos, como Self, en los
que las clases no existen.

Adems, es importante remarcar que si un cierto grupo de obje-


tos pueden utilizarse de manera polimrfica es porque, en ltima
instancia, todos ellos saben responder a un cierto mensaje (o a
varios), pero dado que esos mismos objetos generalmente conten-
drn otros mtodos (que otros objetos en dicho grupo no contie-
nen), difcilmente se pueda decir lisa y llanamente que los objetos
son polimrficos; lo correcto es decir que esos objetos se pueden
utilizar de modo polimrfico para un cierto conjunto de mensajes.

Un ejemplo. Podemos crear dos clases distintas: Pez y Ave que


heredan de la superclaseAnimal. La clase Animal tiene el mtodo
abstracto mover que se implementa de forma distinta en cada una
de las subclases (peces y aves se mueven de forma distinta).

Entonces, un tercer objeto puede enviar el mensaje mover a un


grupo de objetos Pez y Ave por medio de una variable de referencia
de clase Animal, haciendo as un uso polimrfico de dichos objetos
respecto del mensaje mover.

CLICK AQUI
26 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS
El concepto de polimorfismo, desde una perspectiva ms general,
se puede aplicar tanto a funciones como a tipos de datos. As nacen
los conceptos de funciones polimrficas y tipos polimrficos. Las
primeras son aquellas funciones que pueden evaluarse o ser apli-
cadas a diferentes tipos de datos de forma indistinta; los tipos poli-
mrficos, por su parte, son aquellos tipos de datos que contienen al
menos un elemento cuyo tipo no est especificado.

Clasificacin

Se puede clasificar el polimorfismo en dos grandes clases:


Polimorfismo dinmico (o polimorfismo paramtrico) es aqul en el
que el cdigo no incluye ningn tipo de especificacin sobre el tipo
de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo
de datos compatible.

Polimorfismo esttico (o polimorfismo ad hoc) es aqul en el que


los tipos a los que se aplica el polimorfismo deben ser explcitos y
declarados uno por uno antes de poder ser utilizados.

El polimorfismo dinmico unido a la herencia es lo que en ocasio-


nes se conoce como programacin genrica.

Tambin se clasifica en herencia por redefinicin de mtodos abs-


tractos y por mtodo sobrecargado. El segundo hace referencia al
mismo mtodo con diferentes parmetros.

Otra clasificacin agrupa los polimorfismo en dos tipos: Ad-Hoc que


incluye a su vez sobrecarga de operadores y coercin, Universal
(inclusin o controlado por la herencia, paramtrico o genericidad).

CLICK AQUI
www.paraprogramadores.com 27
Tipos de
Datos

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Tipos de Datos

Un tipo de dato indica un conjunto de valores que significan lo mis-


mo, hay algunos tipos que no representan valores en la aplicacin
que se ejecutan.

Los tipos son la puesta en vigor de la clase de objetos, los objetos


con distintos tipos no podrn intercambiarse o al menos no total-
mente, si se lograran intercambiar solo de formas muy limitadas.
Un tipo es una caracterizacin de propiedades estructurales o de
comportamiento que utilizan una serie de entidades.

Tengamos en cuenta que la buena comprobacin de tipos nos im-


pide que se mezclen abstracciones.

Existen 3 maneras de comprobar los tipos: esttico, dinmico, es-


tricto, este ltimo casi siempre suele tomarse como tipo esttico.

Tipo Esttico

Consiste en qu el tipo exacto de cada expresin pueda ser locali-


zado en tiempo de compilacin mediante un anlisis esttico de la
aplicacin.

El tipo esttico detecta anomalas en tiempo de compilacin, pero


puede ser muy restrictivo.

Entre los lenguajes que utilizacin tipado esttico podemos men-


cionar, Java o C++.

Ya que estos permiten que los errores sean detectados antes de la


ejecucin, haciendo as la aplicacin ms eficiente.

CLICK AQUI
www.paraprogramadores.com 29
PROGRAMACIN ORIENTADA A OBJETOS

Tipo Estricto

Todas las expresiones de los tipos deben de ser consistentes en


tiempo de compilacin.

Dejando ms claro los tipos de datos estrictos aseguran que no se


asignen accidentalmente un tipo de valor incorrecto o una variable.
Este tipo de datos tambin asegura que no se acceda a propieda-
des o mtodos que no formen parte de dicho tipo de objeto.

La Consistencia

La consistencia es la cualidad que tiene un objeto que resiste sin


corromperse fcilmente.

La consistencia se define a travs de tres restricciones funda-


mentales.

Restriccin de declaracin: Indica que todos las entidades deben


tener un tipo declarado.

Restriccin de Compatibilidad: El tipo fuente debe ser compatible


con el tipo de destino.

Restriccin de llamada a caracterstica: Para poder llamar a un atri-


buto o clase X desde la clase Y, X tiene que estar definida en y en
sus antecesores.

Pesimismo

Se le llama cuando se tienen operaciones con tipos las cuales cree-


mos estar seguros que funcionaran o sern vlidas siempre, pero si
no se tiene dicha seguridad, entonces es mejor que no se permitan.
Un ejemplo de sera, una Clase Animal, una clase perro que tiene
el mtodo correr.

CLICK AQUI
30 www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Qu sucedera si yo hago lo siguiente:

Animal UnAnimal = agregue un perro


luego tomo la variable UnAnimal y hago uso del mtodo correr
(UnAnimal.correr)
Esto funcionara si todos los Animales corrieran pero qu pasa si
yo en UnAnimal agrego un perico?

Para resolver eso tenemos algunas soluciones, una de ellas llama-


da el Type-Cast o Run-Time Type Information.

Tipo Dinmico

Se realizan las comprobaciones en tiempo real (ejecucin).


Esto quiere decir que una variable puede tomar valores de diferen-
tes tipos en diferentes momentos.

Entre los lenguajes que podemos mencionar que utilizan este tipa-
do est Phyton y PHP.

Qu es fuertemente tipado?

Esto nos exige tratar un tipo de dato solamente como ese mismo
tipo, no permite conversiones incluidas, las conversiones de datos
son explicitas.

Un lenguaje fuertemente tipado no permite tratar un tipo de dato


como otro, no permiten violaciones de los tipos de datos, es decir,
un tipo concreto no se puede usar como si fuera un tipo diferente a
menos que se haga una conversin.

Qu es dbilmente tipado?

Se refiere a las conversiones incluidas que se realizan, por ejemplo


si se quiere convertir un real a entero, podra redondear el decimal
a entero, quitar los decimales o mostrar solo el entero, esto depen-
de de cmo trate la conversin el lenguaje dbilmente tipado que
se est utilizando.tipo en un mismo escenario.

CLICK AQUI
www.paraprogramadores.com 31
Concurrencia
y
Persistencia

CLICK AQUI
www.paraprogramadores.com
PROGRAMACIN ORIENTADA A OBJETOS

Concurrencia

La Concurrencia permite que distintos objetos acten al mismo


tiempo, usando diferentes hilos de control (un solo proceso).

Es la propiedad que diferencia a los objetos entre estar activos o


no.

Es muy comn tener que manejar varias acciones diferentes al mis-


mo tiempo, para ello se utilizan procesos los cuales producen ac-
ciones dinmicas independientes dentro de un sistema.

Sabemos que se tienen sistemas los cuales ejecutan en mltiples


CPU permitiendo as hilos de control verdaderamente concurren-
tes, mientras que en los sistemas que ejecutan en un solo CPU slo
se puede conseguir una ilusin de hilos concurrentes de control,
normalmente mediante algn algoritmo de tiempo compartido.

En esto manejamos dos tipos de procesos: pesados y ligeros.

Proceso Pesado: Es aquel que es comnmente manejado de forma


autnoma por el sistema operativo, este tiene su propio espacio de
direcciones.

Proceso Ligero: Existe dentro de un solo proceso del sistema ope-


rativo en compaa de otros procesos ligeros y comparten el mismo
espacio de direcciones.

La Programacin orientada a objetos se centraliza en la abstrac-


cin de datos, encapsulamiento y herencia, mientras qu la concu-
rrencia se centra en la abstraccin de procesos y la sincronizacin.
Una vez que se tiene la concurrencia en un sistema, debemos de
tomar en cuenta cmo los objetos activos se sincronizan con otros.

CLICK AQUI
www.paraprogramadores.com 33
PROGRAMACIN ORIENTADA A OBJETOS

Persistencia

Es la propiedad de un objeto por la que su existencia trasciende el


tiempo es decir, el objeto contina existiendo despus de que su
creador deja de existir y/o espacio.

Dicho de otra manera, la persistencia es la accin de mantener la


informacin del objeto de una forma permanente (guardarla), pero
tambin debe de poder recuperarse dicha informacin para que
pueda ser utilizada nuevamente.

La persistencia es el mecanismo que se usa para mantener infor-


macin almacenada.

Para la persistencia los objetos podran clasificarse en dos tipos


objetos transitorios y objetos persistentes.
Transitorios: Son aquellos que su tiempo debida depende del espa-
cio del proceso que lo creo.

Persistentes: Son aquellos que su estado es almacenado en un


medio temporal para su posterior reconstruccin y utilizacin, por lo
cual el objeto no depende del proceso que lo creo.
Un ejemplo de la persistencia es aquel objeto que se crea para lue-
go ser guardado en la base de datos.

CLICK AQUI
34 www.paraprogramadores.com
www.paraprogramadores.com

Вам также может понравиться