Posts Tagged ‘Pattern’

Semana da Computação Sociesc 2010

Na semana do dia 24 de agosto acontecerá na Sociesc da Marquês de Olinda um evento de computação que terá palestras, oficinas e minicursos relacionados a computação. Veja lista completa aqui

Eu estarei presente no evento assistindo as palestras, ministrando um minicurso e uma oficina.

O Minicurso será nos dias 24 e 25 de agosto pelo Microsoft Inovation Center (MIC), sendo seu responsável o Sr. Rodrigo Curvêllo. Este terá como foco as tecnologias Microsoft e conterá com 4 palestrantes e toda equipe comprometida do MIC. Os assuntos tratados serão:

  • Introdução ao .Net Framework e ASP.NET (1h) -> Juliano Rinaldi da empresa Opentech
  • Sql-Server 2008 (30min) -> Gustavo Renato Meyer da empresa Sonda Procwork
  • SilverLight (30 min) -> Fernando Magno da empresa Easy Communication & Technology
  • Domain Driven Design (1h) -> Lorival Smolski Chapuis da empresa Conceito W Sistemas

Cada um destes assuntos será tratado por um palestrante diferente, como vocês puderam perceber acima, sendo eu quem tratará de Domain Driven Desing do Eric Evans. Após o dia 25 estarei postando a apresentação aqui no blog e explicando um pouco mais sobre DDD.

Cada dia comportará 20 vagas totalizando 40, mas infelizmente ou felizmente, dependendo do ponto de vista, todas já estão lotadas.

A Oficina será uma sessão Dojo do JoinvilleDojo, ocorrendo no dia 25 de agosto durante toda a noite. Eu terei que me ausentar durante 1h para estar no mini-curso de DDD, porém Guilherme Oenning estará toda a noite guiando o Dojo. A linguagem a ser utilizada será C# e trabalharemos 2 katas, o restante só indo assistir para saber… hehehehe
A notícia boa é que ainda tem 5 vagas. Acesse o site da Sociesc e faça sua inscrição para o evento. É necessário criar um usuário para se inscrever.

Vamos participar, aprender e compartilhar. Encontro vocês lá.

Abrs a todos.

“Nada grandioso jamais foi criado sem entusiasmo”. Ralph Waldo Emerson

Padrão de projeto – parte 4: Facade

Design Pattern: Facade

Definição segundo GoF: Oferecer uma interface única para um conjunto de interfaces de um subsistema. Façade define uma interface de nível mais elevado que torna o subsistema mais fácil de usar.

Exemplo baseado no mundo real: A sala de estar…. ah! sala de estar, quanta beleza existe em uma boa e tecnológica sala de estar… quantos de nós já teve a maravilhosa idéia de montar seu home theater em sua sala de estar, tornando-a um fantástico embolado de fios e aparelhos eletro-eletrônicos? Pois bem, nosso objetivo aqui é criar uma sala simples e bacana tecnológicamente. Vamos precisar de:

  • Uma TV 32 polegadas LCD (poderia ser LED eu sei, mas vamos pelo  mais barato);
  • Um DVD Player conectado a nossa TV;
  • Um Aparalho de som 7.1 para usar como rádio/CD/MP3  para conectar com nosso DVD Player;
  • Um PlayStation3 conectado a TV;
  • Uma luz ambiente regulável.

Poderia ser mais coisas, mas vamos começar pelo simples. Agora você sentou no sofá e pegou na mão os controles:

  • da TV;
  • do DVD Playser;
  • do aparalhode som;
  • da luz ambiente.

Já imaginou o trabalho que vai ter para usar tudo isso integrado? E se tivessemos apenas um controle que reuni-se as principais funcionalidades destes 4 e ainda conecta-se nosso Play 3 junto? Não seria uma maravilha? Pois bem, este é o objetivo do Façade ou fachada: servir como uma interface única para um conjunto de interfaces.

Aplicações:

  • Sempre que for desejável criar uma interface para um conjunto de objetos com o objetivo de facilitar o uso da aplicação;
  • Reduzir a complexidade do relacionamento entre uma classe relativa ao cliente e as demais classes utilitárias [Junior, 2004];
  • Redução de dependência entre o cliente e as classes existentes nos subsistemas, ocasionando a redução da coesão do sistema.

Vantagens:

  • Permite que objetos individuais cuidem de uma única tarefa, deixando que a fachada se encarregue de divulgar as suas operações;
  • Reduz dependências de compilação, possivelmente complexas ou circulares;
  • Não evita que aplicações possam acessar diretamente as subclasses do sistema, se assim o desejarem [Junior, 2004];

Desvantagens:

  • Necessário saber a classe concreta do criador de instâncias;

Observações:

  • Fachadas são normalmente implementadas com singleton;
  • Uma fachada apenas com métodos estáticos são chamadas de Utility.

Diagrama de classe:

Diagrama simplificado

Implementação em C#:

public class Client
{
    public void Cooking() //-- Quando o cliente for cozinhar algo para comer...
    {
        //-- Código especialista
        HomeTheaterFacade homeTheater = new HomeTheaterFacade();
        homeTheater.WatchMovie();
        //-- Código especialista
    }

    //-- Outros métodos úteis aqui
}

A codificação inteira deste post, juntamente com exemplos será feita em outro post.

Abrs a todos e até a próxima.

Quando vemos um gigante, temos primeiro de examinar a posição do sol e observar para termos certeza de que não é a sombra de um pigmeu.” Friedrich Novalis

Desenvolvedor de software, amante pela tecnologia, empreendedor, eclético em sistemas operacionais, analista de sistemas, entusiasta em inteligência artificial, absurdamente ocupado, arquiteto de software , está sempre envolvido em projetos, consultor , adora ir em eventos de tecnologia e empreendedorismo. Desenvolve para PC e Web. Iniciou uma nova jornada de desenvolvimento e estudos em Android e IOS.
Calendário
May 2012
M T W T F S S
« Nov    
 123456
78910111213
14151617181920
21222324252627
28293031  
Nuvem de tags
Total de visitas até ontem
@lorivalsc

Posting tweet...

Powered by Twitter Tools

Biblioteca
Shelfari: Book reviews on your book blog