SlideShare uma empresa Scribd logo
1 de 22
SSP
Simple Singleton Pattern
  por Dennis Calazans
Dennis Calazans

      •   FMR - Sistemas para internet
      •   UFPE - Mestrado em Design
      •   Professor
          •   Design Multimídia
          •   Tecnologias Avançadas
          •   Projeto de Web Apps
          •   Tecnologias Front-end
O que aprendi por aí...

• Eu não sei nada
• Eu posso aprender tudo
• Ninguém cresce sozinho
• Problemas devem ser resolvidos
• Conhecimento deve ser compartilhado
Profissão FEED

• HTML x CSS x JS
• O que devo saber?
• O que vão cobrar de mim?
• Quais são as maiores dificuldades?
Padrão de projeto
 Uma solução para vários problemas.
Padrão
    Singleton
Seu projeto organizado
    em um “JSON”
Pro JavaScript
Design Patterns
        Capítulo 5

         Autores
 Ross Harmes e Dustin Diaz

 ISBN - 978-1-59059-908-2
JavaScript
    Patterns
       Capítulo 7

        Autor
    Stoyan Stefanov

ISBN - 978-0-596-80675-0
JavaScript
Design Patterns
        Capítulo 9

         Autor
      Addy Osmani

 ISBN - 978-1-4493-3181-8
Hands on!
Singleton
var APP = APP || {};
Organização
APP.RedesSociais.Facebook.compartilhar
     APP.Util.Data.formatoLeitura
         APP.Noticias.Ajax.url
Exemplo
github.com/denniscalazans
Vendendo o peixe

• O mais básico
• Super útil
• Fácil de aprender
• Auxilia a documentação
Como usar?

• Projetos pequenos
• Projetos maiores
• Projetos complexos
Benefícios

• Organização
• Agrupamento de atributos e métodos
• Namespaces
• Ótimo para iniciantes
Devemos...

• Analisar a situação
• Considerar a criação de classes que podem
  ser instanciadas múltiplas vezes
• Considerar a utilização de outro padrão
Argumentos

• Comum em outros linguagens
• No JS é feita uma adaptação
• Com o JS é possível simplificação
• Um padrão de projeto sugere, não impõe
Links

•   http://pt.wikipedia.org/wiki/Padrão_de_projeto_de_software

•   http://pt.wikipedia.org/wiki/Singleton

•   http://bit.ly/JSsingletonPatternRelacaoComOOJS

•   http://bit.ly/JSsingletonPatternDiscussaoComExemplos

•   http://bit.ly/JSsingletonPatternDiscussaoComExemplos2

•   http://github.com/denniscalazans/SimpleSingletonPattern
Livros

• http://oreil.ly/JavascriptPatterns
• http://bit.ly/ProJavascriptDesignPatterns
• http://bit.ly/ObjectOrientedJavascript
denniscalazans.com/js
github.com/denniscalazans
          Obrigado!
Entre em contato
    www.denniscalazans.com
  contato@denniscalazans.com

Mais conteúdo relacionado

Mais procurados

Powershell “à minha maneira”
Powershell “à minha maneira”Powershell “à minha maneira”
Powershell “à minha maneira”pt_programar
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parecejesuinoPower
 
Dessign patterns: Resoluções comuns para problemas comuns de POO
Dessign patterns: Resoluções comuns para problemas comuns de POODessign patterns: Resoluções comuns para problemas comuns de POO
Dessign patterns: Resoluções comuns para problemas comuns de POOJoão Lucas Farias
 
Javascript por onde começar
Javascript por onde começarJavascript por onde começar
Javascript por onde começarDjanilson Alves
 
Desenvolvimento para Windows 8
Desenvolvimento para Windows 8Desenvolvimento para Windows 8
Desenvolvimento para Windows 8Nelson Junior
 
Arquitetura web, o que nao fazer!
Arquitetura web, o que nao fazer!Arquitetura web, o que nao fazer!
Arquitetura web, o que nao fazer!Khwesten Heiner
 
CodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoCodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoRafael Pinheiro
 
Palestra NativeScript - 2º Meetup DF.js
Palestra NativeScript - 2º Meetup DF.jsPalestra NativeScript - 2º Meetup DF.js
Palestra NativeScript - 2º Meetup DF.jsWendell Adriel
 
Palestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndPalestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndLuis Fernando Mangia
 
Front-end javascript unit testing and mock
Front-end javascript unit testing and mockFront-end javascript unit testing and mock
Front-end javascript unit testing and mockfelipefsilva
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignIntrodução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignGustavo Zimmermann
 
Desmitificando o WordPress
Desmitificando o WordPressDesmitificando o WordPress
Desmitificando o WordPressTiago Pires
 

Mais procurados (20)

Powershell “à minha maneira”
Powershell “à minha maneira”Powershell “à minha maneira”
Powershell “à minha maneira”
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parece
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Palestra Netbeans 6 Campus Party
Palestra Netbeans 6 Campus PartyPalestra Netbeans 6 Campus Party
Palestra Netbeans 6 Campus Party
 
Dessign patterns: Resoluções comuns para problemas comuns de POO
Dessign patterns: Resoluções comuns para problemas comuns de POODessign patterns: Resoluções comuns para problemas comuns de POO
Dessign patterns: Resoluções comuns para problemas comuns de POO
 
Javascript por onde começar
Javascript por onde começarJavascript por onde começar
Javascript por onde começar
 
Como é ser uma Front-end em 2018
Como é ser uma Front-end em 2018Como é ser uma Front-end em 2018
Como é ser uma Front-end em 2018
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
 
Desenvolvimento para Windows 8
Desenvolvimento para Windows 8Desenvolvimento para Windows 8
Desenvolvimento para Windows 8
 
Bower
BowerBower
Bower
 
Arquitetura web, o que nao fazer!
Arquitetura web, o que nao fazer!Arquitetura web, o que nao fazer!
Arquitetura web, o que nao fazer!
 
CodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoCodeIgniter 4 - Introdução
CodeIgniter 4 - Introdução
 
Dev Heroes
Dev HeroesDev Heroes
Dev Heroes
 
Palestra NativeScript - 2º Meetup DF.js
Palestra NativeScript - 2º Meetup DF.jsPalestra NativeScript - 2º Meetup DF.js
Palestra NativeScript - 2º Meetup DF.js
 
Palestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-EndPalestra Sobre o que é um Front-End
Palestra Sobre o que é um Front-End
 
Front-end javascript unit testing and mock
Front-end javascript unit testing and mockFront-end javascript unit testing and mock
Front-end javascript unit testing and mock
 
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web DesignIntrodução ao Web Design: Aula 1 - Imersão ao Web Design
Introdução ao Web Design: Aula 1 - Imersão ao Web Design
 
FJN 2011
FJN 2011FJN 2011
FJN 2011
 
Desmitificando o WordPress
Desmitificando o WordPressDesmitificando o WordPress
Desmitificando o WordPress
 
Bem Vindo Ao +Web
Bem Vindo Ao +WebBem Vindo Ao +Web
Bem Vindo Ao +Web
 

Semelhante a Singleton Pattern em JavaScript

Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Carlos Eduardo
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Como encarar o desenvolvimento front-end
Como encarar o desenvolvimento front-endComo encarar o desenvolvimento front-end
Como encarar o desenvolvimento front-endJean Carlo Emer
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Douglas Fischer
 
Mapa de aprendizado Front End
Mapa de aprendizado Front EndMapa de aprendizado Front End
Mapa de aprendizado Front EndCaio Vaccaro
 
Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaJohnathan Cardoso
 
CSS: pare de usar frameworks e atualize-se
CSS: pare de usar frameworks e atualize-seCSS: pare de usar frameworks e atualize-se
CSS: pare de usar frameworks e atualize-seJulio Vedovatto
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoPaulo Henrique da Silva
 
Como criar seu próprio Framework
Como criar seu próprio FrameworkComo criar seu próprio Framework
Como criar seu próprio FrameworkHiarison Gigante
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuWagner Souza
 
Agilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC FlorianópolisAgilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC FlorianópolisWagner Mendes Voltz Fusca
 

Semelhante a Singleton Pattern em JavaScript (20)

Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Como encarar o desenvolvimento front-end
Como encarar o desenvolvimento front-endComo encarar o desenvolvimento front-end
Como encarar o desenvolvimento front-end
 
PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Mapa de aprendizado Front End
Mapa de aprendizado Front EndMapa de aprendizado Front End
Mapa de aprendizado Front End
 
Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gosta
 
Crystal
CrystalCrystal
Crystal
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
CSS: pare de usar frameworks e atualize-se
CSS: pare de usar frameworks e atualize-seCSS: pare de usar frameworks e atualize-se
CSS: pare de usar frameworks e atualize-se
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimento
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
 
Como criar seu próprio Framework
Como criar seu próprio FrameworkComo criar seu próprio Framework
Como criar seu próprio Framework
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Micro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viuMicro frontend de um jeito que você nunca viu
Micro frontend de um jeito que você nunca viu
 
Agilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC FlorianópolisAgilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC Florianópolis
 

Singleton Pattern em JavaScript

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n