• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Design Patterns with Python -  Is it possible ? - Part 01
 

Design Patterns with Python - Is it possible ? - Part 01

on

  • 1,695 views

Presentation from Marcel Caraciolo about Design Patterns with Python. This is the first part. Lectured at V Meeting of PUG-PE (Python Users Group of Pernambuco) at POLI- Recife,Pernambuco, Brazil. ...

Presentation from Marcel Caraciolo about Design Patterns with Python. This is the first part. Lectured at V Meeting of PUG-PE (Python Users Group of Pernambuco) at POLI- Recife,Pernambuco, Brazil. Day: 03/07/2010

Statistics

Views

Total Views
1,695
Views on SlideShare
1,502
Embed Views
193

Actions

Likes
0
Downloads
48
Comments
1

5 Embeds 193

http://pugpe.wordpress.com 92
http://www.mobideia.com 76
http://mobideia.blogspot.com.br 20
http://mobideia.blogspot.com 4
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Ué, pq quando vou fazer o download vem como arquivo .key?
    A palestra ficou muito boa. Parabéns!
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • Em 1987, a partir dos conceitos criados por Alexander, os programadores Kent Beck e Ward Cunningham propuseram os primeiros padr&#xF5;es de projeto para a &#xE1;rea da ci&#xEA;ncia da computa&#xE7;&#xE3;o. Em um trabalho para a confer&#xEA;ncia OOPSLA, eles apresentaram alguns padr&#xF5;es para a constru&#xE7;&#xE3;o de janelas na linguagem Smalltalk.[3] Nos anos seguintes Beck, Cunningham e outros seguiram com o desenvolvimento destas id&#xE9;ias. <br /> O movimento ao redor de padr&#xF5;es de projeto ganhou popularidade com o livro Design Patterns: Elements of Reusable Object-Oriented Software, publicado em 1995. Os autores desse livro s&#xE3;o Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, conhecidos como a "Gangue dos Quatro" (Gang of Four) ou simplesmente "GoF". Posteriormente, v&#xE1;rios outros livros do estilo foram publicados, como Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, que introduziu um conjunto de padr&#xF5;es conhecidos como GRASP (General Responsibility Assignment Software Patterns). <br /> <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Design Patterns with Python -  Is it possible ? - Part 01 Design Patterns with Python - Is it possible ? - Part 01 Presentation Transcript

  • Padrões de Projeto É possível com Python ?! Parte 01 V Encontro do PUG-PE Marcel Caraciolo IV Encontro do PUG-PE
  • Vamos ao que interessa! Classe Normal x Classe Abstrata x Interface class Pessoa(object): def __init__(self,nome=None): self.nome = nome def getNome(self): return self.nome def fala(self): raise Exception(‘Acao nao implementada’) def olha(self): pass IV Encontro do PUG-PE
  • Vamos ao que interessa! Classe Normal x Classe Abstrata x Interface class Ator(Pessoa): def __init__(self, nome): Pessoa.__init__(nome,self) def fala(self): print ‘Eu sou um ator !!’ def olha(self): print ‘Meu olhar 43 !’ IV Encontro do PUG-PE
  • Vamos ao que interessa! Classe Normal x Classe Abstrata x Interface >>> p = Pessoa() >>> p.fala() #Lanca exceção >>> p.olha() #Nada >>> ator = Ator(‘Marlon Brando’) >>> ator.fala() Eu sou um ator! >>> ator.olha() Meu olhar 43! IV Encontro do PUG-PE
  • Vamos ao que interessa! Classe Normal x Classe Abstrata x Interface class Filme(object): def __init__(self, elenco=None): self.elenco = elenco def falas(self): for ator in elenco: print self.ator.fala() ... IV Encontro do PUG-PE
  • Vamos ao que interessa! Classe Normal x Classe Abstrata x Interface >>> ... >>> filme = Filme([ator]) >>> filme.falas() Eu sou um ator! IV Encontro do PUG-PE
  • Vamos ao que interessa! IS - A Herança Marlon Brando é um Ator. Ator é uma pessoa. HAS - A Composição Filme tem Atores. CAN - DO Interface Ator pode falar, olhar. IV Encontro do PUG-PE
  • Vamos ao que interessa! ✓ Herança ✓ Polimorfismo ✓ Abstração Encapsulamento IV Encontro do PUG-PE
  • Encapsulamento em Python Não há modificadores de acesso em Python Convenção: Mas não há uma maneira de _nome (Protegido) eu limitar o acesso ao __cpf (Privado) atributos ? IV Encontro do PUG-PE
  • Encapsulamento em Python Vamos à prancheta! Objetivo: Construir um fone cujo volume vai de 0 à 100! class Fone(object): def __init__(self,volume= 0.0): self.volume = volume def alterar_volume(self,volume): if volume > 100: self.volume = 100 elif volume < 0: self.volume = 0 else: self.volume = volume def pegar_volume(self): return self.volume IV Encontro do PUG-PE .
  • Encapsulamento em Python Vamos à prancheta! Objetivo: Construir um fone cujo volume vai de 0 à 100! >>>fone = Fone(200) >>>fone.pegarVolume() 200 >>>fone.volume 200 >>>fone.volume = -50 >> fone.volume -50 IV Encontro do PUG-PE
  • Encapsulamento em Python Voltando ao código! Objetivo: Construir um fone cujo volume vai de 0 à 100! class Fone(object): (...) def pegar_volume(self): return self.volume volume = property(pegar_volume,alterar_volume) . IV Encontro do PUG-PE
  • Encapsulamento em Python Vamos à prancheta! Objetivo: Construir um fone cujo volume vai de 0 à 100! >>>fone = Fone(200) >>>fone.pegarVolume() 100 >>>fone.volume 100 >>>fone.volume = - 50 0 >>>fone.volume = 200 >>>fone.volume 100 IV Encontro do PUG-PE
  • O que são Padrões de Projeto ? ‘São práticas ou padrões que descrevem soluções para problemas recorrentes no desenvolvimento de sistemas de software orientado a objetos.’ - Wikipedia Um padrão estabelece um nome, um problema, a solução, quando aplicar esta solução e suas consequências. IV Encontro do PUG-PE
  • Design Patterns IV Encontro do PUG-PE
  • Design Patterns IV Encontro do PUG-PE
  • Classificação DP Creational Relacionado à parte de criação do objeto Structural Relacionado à parte de composição de classes e objetos Behavioral Caracteriza como as classes/objetos se comunicam e distribuem seus papéis IV Encontro do PUG-PE
  • Cenas do próximo capítulo... IV Encontro do PUG-PE
  • Referências http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html IV Encontro do PUG-PE
  • Padrões de Projeto É possível com Python ?! Parte 01 IV Encontro do PUG-PE Marcel Caraciolo IV Encontro do PUG-PE