Poo básica

Solo disponible en BuenasTareas
  • Páginas : 16 (3853 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de mayo de 2011
Leer documento completo
Vista previa del texto
POO

Diseño Orientado a Objetos

Indice


Principios

generales

de

diseño



Programacion Orientada a objetos en python Principios de Diseño orientado a objetos Diseño de patrones





Principios generales de diseño

Principios generales de diseño


El diseño de software es un proceso de interminable aprendizaje



LO que realmente cuenta es lamotivacion que tienes para mejorar tu codigo .

Principios generales de diseño


Buen diseño de software Escribir software es como escribir en prosa, no es solo acerca de la informacion, sino tambien del estilo. Vamos a generales:
● ●

empezar

con

dos

principios

Debe ser sencillo No reinventar la rueda

Programacion Orientada a objetos en python

Programacion Orientada aobjetos


Objetos Combina estados (data) y comportamiento (algoritmos) Encapsulacion Los objetos deciden que muestran (exponen) al mundo exterior (Por su interfaz publica) y oculta los detalles de su implementacion para proveer abstraccion.La abstraccion no presenta “fugas” en la implementacion .



Programacion Orientada a objetos



Clases (En OO Clasica) Define que es comun para todauna clase de objetos.Ejemplo: “Snowy es un perro” que se puede traducir como “El objeto Snowy es una instancia de la clase perro” .Definir una vez como funciona la clase perro y volver a utilizarlos para todos los perros .

Programacion Orientada a objetos


Herencia Un perro (Clase) es un mamifero (Clase Padre/SuperClase). Una subclase se deriva (se extiende) de una clase padre.Se vuelve autilizar y se extiende , y puede reemplazar las piezas que necesitan especializacion. Principio de sustitucion de Liskov Lo que funciona para la clase mamiferos tambien debe funcionar para la clase perro
(http://www.objectmentor.com/resources/articles/lsp.pdf )

Programacion Orientada a objetos


Polimorfismo Proporciona un camino comun de uso para diferentes clases.comportamientosdiferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. Ejemplo : El operador + para reales y complejos .

Python : POO BASICO


En Python todo es un objeto, y una clase siempre hereda del objeto object. Una clase se define mediante:

class nombre_clase(object): Python : POO BASICO


Normalmente una clase tiene atributos y métodos. En Python, un atributo se puede declarar en cualquier sitio, aunque lo propio sería en el método __init__, que aunque no es el constructor, sí que es el sitio donde habría que poner el código que ejecutaría el constructor.

Python : POO BASICO


Todas las clases derivan de un objeto:
class Dog(object): Pass



Losobjetos de python tienen datos y atributos de funciones :
class Dog(object): def bark(self): print "Wuff!" snowy = Dog() snowy.bark() snowy.a = 1

El primer argumento (self) es obligatorio para esta instancia Dog

Añadimos un atributo a la clase Dog llamada snowy

Python : POO BASICO


Los atributos de datos se definen en __init__ : class Dataset(object):
def __init__(self):
self.data= None

def store_data(self, raw_data):
... # process the data self.data = processed_data

Python : POO BASICO


Los metodos especiales inician y terminan con dos underlines :
class My2Vector(object): def __init__(self, x, y): self.x = x self.y = y def __add__(self, other): return My2Vector(self.x+other.x, self.y+other.y) v1 = My2Vector(1, 2) v2 = My2Vector(3, 2) v3 = v1 + v2 Python : POO BASICO
class Coche: """Abstraccion de los objetos coche.""" def __init__(self, gasolina): self.gasolina = gasolina print "Tenemos", gasolina, "litros" def arrancar(self): if self.gasolina > 0: print "Arranca" else: print "No arranca..." def conducir(self): if self.gasolina > 0: self.gasolina -= 1 print "Quedan", self.gasolina, "litros" else: print "No se mueve..."

carro = Coche(2)...
tracking img