Descrição do modo de agente
Nota: Como o nome sugere, é usar uma classe para substituir outra classe para executar funções de método. Esse padrão é um pouco semelhante ao modo decorativo. A diferença é que o modo proxy substitui o cliente para inicializar a classe de objeto proxy, enquanto o modo decorativo é executado por interface ou referência ao parâmetro do decorador inicial.
Na linguagem dinâmica orientada a objetos, o modo proxy desempenha o papel de controlar e modificar a classe Proxy e também desempenha uma função oculta e protegida completa para a classe Proxy; A classe de proxy é indiretamente inicializada e chamada apenas quando precisamos;
Descrição da cena:
Um exemplo muito comum de alugar uma casa. Os inquilinos querem alugar uma casa e o proprietário quer alugar a casa, mas nem o inquilino nem o proprietário têm muito tempo para encontrar uma casa ou esperar que alguém veja a casa em casa, para que eles encontrem um agente imobiliário juntos. O proprietário confia a sala à agência para alugar e vender. Quando houver uma pessoa adequada, o agente leva a sala para vê -lo e pagar o dinheiro para alugá -lo, para que o proprietário alugue a sala; O inquilino confia a casa à agência para ajudar a localização da sala exigida pela agência. Depois que o agente encontrar o inquilino, os dois pagarão o dinheiro para alugá -lo, para que o inquilino possa alugá -lo para o local onde mora;
Código fonte da instância
Siga o exemplo acima para alcançar;
1. Categoria de aluguel de proprietários;
A cópia do código é a seguinte:
função fangdong () {
this.room = 'Nome da sala';
}
Fangdong.prototype.chuzu = function () {
console.log ('Land tholders Rents Room:' + this.room);
}
2. Classe de agente intermediário:
A cópia do código é a seguinte:
função proxy () {
this.fangdong = new Fangdong ();
}
Proxy.prototype.chuzu = function () {
this.fangdong.chuzu ();
console.log ('Taxas de agência de transporte após alugar');
}
3. Como usar:
A cópia do código é a seguinte:
// O inquilino pede a um agente que ajude a encontrar uma casa;
var proxy = new proxy ();
proxy.chuzu ();
Veja o uso acima. A classe proxy não está disponível no lado do cliente. Basta usar a classe Proxy, que pode ser usada bem em um cenário em que certos processos de lógica de negócios precisam ser protegidos; O uso do modo proxy pode ser bem usado em uma classe de proxy que precisa ser protegida;
Outras instruções
Como o modo decorador, o modo proxy também reflete bem o princípio do pensamento orientado a objetos da abertura para a extensão e a modificação de fechamento;
Modo proxy, você pode usar interfaces ou classes abstratas para regular as interfaces comuns: (o seguinte fornece o modo proxy Java)
1. Método abstrato da classe abstrata;
A cópia do código é a seguinte:
Casa de classe abstrata pública {
Public Void Abstract Chuzu ();
}
classe pública Fangdong estende a casa {
String private Room = "Nome da sala";
@Override
public void chuzu () {
System.out.println (sala);
}
}
classe pública Proxy estende a casa {
Privado Fangdong Fangdong;
public proxy () {
this.fangdong = new Hangdong ();
}
@Override
public void chuzu () {
this.fandong.chuzu ();
System.out.println ("Taxa de pagamento da agência após alugar");
}
}
//usar
Casa de casa = novo proxy ();
house.chuzu ();
2. Método da interface:
A cópia do código é a seguinte:
interface House {
public void chuzu ();
}
classe pública Fangdong implementa a casa {
String private Room = "Nome da sala";
@Override
public void chuzu () {
System.out.println (sala);
}
}
classe pública implementos de proxy House {
Privado Fangdong Fangdong;
public proxy () {
this.fangdong = new Hangdong ();
}
@Override
public void chuzu () {
this.fandong.chuzu ();
System.out.println ("Taxa de pagamento da agência após alugar");
}
}
//usar
Casa de casa = novo proxy ();
house.chuzu ();