780 likes | 968 Views
Programación. Orientada a Objetos I. Antes de intentar aprender algo ten presente…. lo complejo, alguna vez… fue simple , entiende lo simple. El problema está en la técnica , no en la herramienta. Si no eres nuevo en esto de programar, pero aún no entiendes la orientación a objetos…
E N D
Programación Orientada a Objetos I
Antes de intentar aprender algo ten presente… lo complejo, alguna vez… fue simple, entiende lo simple.
El problema está en la técnica, no en la herramienta
Si no eres nuevo en esto de programar, pero aún no entiendes la orientación a objetos… deshazte de vicios y empieza nuevamente!
Que es la orientación a objetos?
Típico! Si bien esta definición es correcta, el problema está, en que tanto lo comprendemos…
A título personal… La orientación a objetos es “simplemente” una forma de ver las cosas, o bien …
…es una forma de entender un problema identificando las entidadesprincipales que se encuentran en el..
La programación orientada a objetos (POO) es por tanto una forma de desarrollar un sistema, pensando en las entidades principales del problema que dicho sistema pretende resolver…
PINCIPIOS EN QUE SE APOYA LA TECNOLOGÍA O.O. • Objeto como instancia de una Clase • Métodos • Mensajes
Artefacto más importante en el AOO Explica los conceptos más significativos en un dominio del problema. Previo a esto es fundamental establecer y perfeccionar el glosario del dominio En un modelo conceptual se ofrece una representación de cosas del mundo real, no de componentes de software.
Un modelo conceptual muestra: • Los conceptos. • Las asociaciones entre conceptos. • Los atributos de los conceptos. Un concepto se considera a partir de su: Símbolo * Definición * Extensión. Una distinción fundamental entre el AOO y el AE es la división por conceptos y no por funciones
El lenguaje de programación es la herramienta para resolver elproblema El propósitode la POO no tiene que ver con el lenguaje de programación
El propósito de la programación orientada a objetosconsiste en… proporcionar una solución informática identificando los conceptos relevantes presentes en el problema
Identificar los conceptos relevantes o las entidades involucradas en un problema significa… reconocer las característicasde estos y las accionesque realizan o bien que producen algún efecto sobre ellos
Con respecto a los lenguajes de programación podemos decir que… cada uno usa la herramientaen que más hábil se considere, el problema finalmenteno cambia
De acuerdo a la situación con una u otra herramienta se nos hace más o menos difícil … y de acuerdo al escenario se debe elegir una u otra herramienta de trabajo
Veamos algunos conceptos clave… Qué es un Objeto?
Un Objeto es… Cualquier Cosa
En serio! Cualquier Cosa
Cualquier Cosa …de la que puedas emitir un concepto…
Es decir… Cualquier Cosa, todo es un objeto
…el mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.
Veamos… Este es un objeto …es un automóvil de plástico,rojo con 4 llantas y 2 puertas
Si realizáramos el proceso mental lentamente, nos daríamos cuenta de que al ver el objeto emitimos un concepto preconcebido es decirautomóvil
En la imagen cada uno de los elementos que vemos es considerado un objeto Sin embargo de todos ellos podemos emitir un concepto conocido y para ello usamos la palabra globo
A ese concepto conocido que representa una agrupaciónde objetos …lo llamamos Clase
Unaclase es como un molde de galletas… … este determina la forma y característicasque la galleta (el objeto) va a tener, sin ser el objeto real
El molde (la clase) no determina por ejemplo, que sabor tiene cada una de las galletas… …tampoco por cuanta cantidad de ingredientes estará compuesta.
La clasees una… …los objetosson todos los que podamos crear mentalmente a partir de dicha claseo concepto
Laclase … … Describe un conjunto de objetos del Contexto del Problema, que tienen las mismas características y el mismo comportamiento
Hagamos un ejercicio, el típico… …el concepto que elegiremos es la clase persona
Este grupo de personastiene un conjunto de característicasy comportamientosen común • Características • Nombre • Edad • Color de Piel • Profesión • Estado Civil • Comportamientos • Hablar • Caminar • Mirar • Nacer • Morir
Un objetode la clasepersonasería • Características • Nombre: Sandra • Edad: 22 • Color de Piel: Morena • Profesión: Deportista • Estado Civil: Soltera • Comportamientos • Hablar • Caminar • Mirar • Nacer • Morir
Otro objetode la clasepersonasería • Características • Nombre: Carlos • Edad: 28 • Color de Piel: Blanco • Profesión: Abogado • Estado Civil: Casado • Comportamientos • Hablar • Caminar • Mirar • Nacer • Morir
Ya vamos entendiendo… Una claseesta compuesta por características(atributos o propiedades) y por comportamientos(acciones o métodos)
Las característicasy comportamientosde una clase son determinadas por el contexto del problema o escenario Esto en programación quiere decir, que dentro de un sistema, solo implementamos los atributosy métodosrelacionados con el ámbito del problema que estamos solucionando.
Veamos algunos conceptos adicionales… A los valores que tienen los atributos de un objetose les conoce como el estado del objeto, y a los atributos y métodos que ofrece se les conoce como la interfaz al código usado para construir las clases se le conoce como la implementaciónde la clase. Interfaz 1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas independientes.
Los objetosse comunican con otros a través de mensajes Un mensaje es una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Wikipedia
Los objetostienen diferentes tipos de relaciones Asociación Agregación/Composición
Los principios que dirigen la orientación a objetos son… … la modularidad y la reusabilidad Qué son?
En términos simples la modularidadsignifica trabajar por partes…
Y la reusabilidadsignificaNo se invente la rueda! Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben construirse pensando en que alguien necesitará usarlo alguna vez
Con respecto a la comunicación tenemos más principiosalta cohesión y el bajo acoplamiento … que tan claros los tenemos?….
Cuando decimos que un componente tiene una alta cohesión hablamos de que todos los elementos dentrode el están estrechamente relacionados … el criterio de relación debe ser de negocio o técnico y no subjetivo
Cuando decimos que un componente tiene una bajo acoplamiento hablamos del nivel de independencia que tiene un componente con respecto a otros