Maison  >  Article  >  interface Web  >  Modèle de conception JavaScript modèle de proxy classique_compétences javascript

Modèle de conception JavaScript modèle de proxy classique_compétences javascript

WBOY
WBOYoriginal
2016-05-16 15:13:531718parcourir

1. Notion de modèle d'agence

Remarque : comme son nom l'indique, une classe est utilisée pour remplacer une autre classe pour exécuter des fonctions de méthode. Ce mode est quelque peu similaire au mode de décoration. La différence est que le mode proxy initialise la classe d'objet proxy au nom du client. , tandis que le mode décoration utilise une interface ou La référence initiale du paramètre décorateur est utilisée pour l'exécution.

Explication : Une agence immobilière peut aider le vendeur à vendre la maison à l'acheteur. Au milieu, le vendeur peut préciser le prix de vente. L'acheteur peut également proposer le type de maison qu'il souhaite acheter, et l'intermédiaire peut. aider à gérer les étapes intermédiaires. Finalement, un accord est conclu. Un intermédiaire peut agir en tant qu’agent pour plusieurs ventes et locations de maisons en même temps.

2. Le rôle et les précautions du mode proxy

Fonction Mode :

1. Proxy distant (un objet proxy localement des objets dans différents espaces)

2. Proxy virtuel (créez des objets coûteux selon vos besoins, par exemple en remplaçant temporairement des images réelles par des espaces réservés lors du rendu des pages Web)

3. Agent de sécurité (contrôle des droits d'accès aux objets confirmés)

4. Guidage intelligent (appel de l'agent objet pour gérer d'autres choses telles que le mécanisme de collecte des ordures)

Remarque :

1. N'abusez pas du proxy, parfois cela ne fait qu'ajouter de la complexité au code

3. Code du mode Agent et résumé pratique

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//代理模式需要三方
//1.买家
function maijia(){
this.name = "小明";
this.money = "30万";
}
//2.中介
function zhongjie(){
}
zhongjie.prototype.maifang = function(){
//new fongdong(new maijia()).maifang("20万");
new fongdong(new maijia()).maifang("20万");
}
//3.卖家
function fongdong(maijia){
this.maijia_name = maijia.name;
this.maijia_money = maijia.money;
this.maifang = function(money){
// alert("收到了来自【"+this.maijia_name+"】"+money+"人民币");
alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币");
}
}
(new zhongjie()).maifang();
</script>
<script>
// A2B
function A(){
this.money = "20RMB";
}
function to(){
if(!(this instanceof to)){
return new to;
}
}
to.prototype.maifang = function(){
var a = new A();
new B().maifang(a.money);
}
function B(){
this.maifang = function(money){
alert("收到了钱"+money);
}
}
(new to()).maifang();
to().maifang();
</script>
</body>
</html>

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn