Padrões de Projeto: Estruturais, Builder e Proxy

Classificado em Computação

Escrito em em português com um tamanho de 2,36 KB

Padrões Estruturais

Os Padrões Estruturais lidam com a organização de classes e objetos, facilitando a comunicação entre suas entidades e utilizando conceitos de Orientação a Objetos (OO) como herança, agregação e composição.

Wrappers

Um Wrapper envolve um objeto, adicionando uma fina camada que modifica ou estende seu comportamento. Problema: Em Java, não é possível adicionar tipos primitivos (int, char) diretamente nas estruturas de dados do pacote Collections, pois o framework exige objetos.

Padrão Builder

O padrão Builder é ideal para a criação de objetos complexos passo a passo, especialmente quando são necessárias diversas lógicas antes da instanciação ou diferentes representações do mesmo objeto.

  • Director: Constrói um objeto utilizando a interface Builder.
  • Builder: Especifica a interface para a construção do objeto.
  • ConcreteBuilder: Implementação específica da interface Builder.
  • Product: O objeto complexo resultante.

Consequências: Permite variar a representação interna, oferece controle sobre o processo de criação e isola o código de construção da representação final.

Padrão Proxy

O Padrão Proxy é utilizado para controlar o acesso a um objeto, fornecendo um substituto ou placeholder. Ele adiciona um nível de indireção para gerenciar acessos distribuídos, controlados ou inteligentes.

  • Subject: Interface do objeto.
  • RealSubject: Implementação do objeto real.
  • Proxy: Encapsula o objeto real e controla seu acesso.

Tipos de Proxy: Virtual, Remoto e Protetor.

Consequências: Permite o controle de acesso sem alterar o objeto real, cria representações locais de objetos remotos e otimiza recursos evitando a criação desnecessária de objetos.

Proxy: Padrão de Projeto GoF

Também conhecido como Surrogate (Substituto), o Proxy encapsula um objeto através de outro com a mesma interface. Isso torna transparente a localização do objeto real, sendo essencial em cenários de Remote Proxy.

Entradas relacionadas: