Ir ao conteúdo
  • Cadastre-se

Padrão de projeto de software - bridge


Posts recomendados

Depois de muito tempo procurando na internet não achei nada sobre o Bridge em português, e todo o conteúdo disponibilizado em inglês nem sempre estava 100% certo, então resolvi criar esse tópico para ajudar a galera que esta entrando na parte de orientado a objeto em PHP.

 

1. INTRODUÇÃO AO BRIDGE

  

  O Bridge também conhecido como handle/body é um padrão de projeto usado para facilitar a comunicação de relacionamento/entidade, o seu principal uso é para desacoplar uma abstração em um conteúdo de uma entidade, fazendo assim com que a mesma entidade herde esse conteúdo para um implementador, e assim herde para outras entidades, como visto na imagem abaixo.

patternbridge1.jpg

2. QUANDO USAR

 

Quando quiser evitar uma ligação permanente entre uma abstração e sua implementação. Ou seja quando você quiser isolar um objeto abstrato sem com que ele perca seu sentido. Lembrando que a implementação de uma abstração não devem ter impacto direto sobre o software do cliente.

 

3. QUANDO DEVE ACONTECER

 

Tanto a abstração quanto a implementação devem ser extensíveis através de herança, ambos devem ter características similares (Ex: Um animal possui boca, assim como os tigres).

 

4. ESTRUTURA GENÉRICA

 

A estrutura genérica do padrão Bridge é você aplicar uma característica de operação para uma tabela como exemplo, e então herdar essa característica para uma implementação (Ex: Tenho uma agencia bancaria e quero separar meus dados em dois tipos, dados públicos e dados privados, primeiramente eu crio uma interface para o usuário e dentro dela crio uma função

public function getDado($tipo);

agora preciso criar uma interface para o tratar meu dado recebido e dentro crio outra função

public function pesqDado();

agora precisamos criar uma classe que implemente a minha interface de usuário

class pessoa implements Pessoal{
	public function getDado($tipo){

a função 'getDado' vai chamar a minha instância selecionada, que no caso foi 'pessoa', agora precisamos criar uma variável que receba os valores dos dados da minha variável $tipo,

$p1 = new $tipo;
$p1 -> pesqDado();

e finalmente iremos separar a abstração do implementador, no caso o dado publico do dado privado,

class dadosPublico implements Dados{
	public function pesqDado(){
		echo"Dados públicos";
 }
}
class dadosPrivados implements Dados{
	public function pesqDado(){
		echo "Dados privado";
 }
}

para melhor entendimento do código veja a imagem abaixo).

 

Screenshot_28.png

 

 

5. IMPLEMENTAÇÃO

 

Para concluir o código devemos simplesmente criar uma variavel que vai receber uma nova interface 'pessoa' e em seguida definir à esta variavel o 'getDado' sendo 'dadosPublico' ou 'dadosPrivado' .

 

Screenshot_24.png

Podemos implementar várias variaveis, alternando ou não dados privados e públicos.

Screenshot_25.png

Criando então o seguinte resultado.

Screenshot_29.png

 

 

(Obs: O nome, telefone e CPF são fictícios).

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...