這篇文章主要介紹了JavaScript設計模式之代理模式,簡單描述了代理模式的概念、功能、組成並結合實例形式較為詳細的分析了javascript代理模式的定義與使用相關操作技巧,需要的朋友可以參考下
本文實例講述了JavaScript設計模式之代理模式。分享給大家供大家參考,具體如下:
代理,顧名思義就是幫助別人做事,GoF對代理模式的定義如下:
##代理模式(Proxy),為其他物件提供一種代理以控制對這個物件的存取。代理模式使得代理物件控制具體物件的參考。代理幾乎可以是任何對象:文件,資源,記憶體中的對象,或是一些難以複製的東西。解釋:房屋中介,可以代理幫助賣家把房子賣給買家,這中間賣家說要賣的價錢就可以了,買家也可以提出自己要買的房型,中介可以幫忙處理中間環節。最後達成買賣。仲介可以同時代理很多房屋買賣,並且可以代理租屋事宜。
代理模式的組成:
抽象角色:透過介面或抽象類別宣告真實角色實現的業務方法。 代理角色:實作抽象角色,是真實角色的代理,透過真實角色的業務邏輯方法來實作抽象方法,並可以附加自己的操作。 真實角色:實作抽象角色,定義真實角色所要實現的業務邏輯,供代理角色呼叫。 二、代理模式的作用與注意事項模式作用:1、遠端代理(一個物件將不同空間的物件進行局部代理)2、虛擬代理(根據需要建立開銷很大的物件如渲染網頁暫時用佔位取代真圖)#3、安全代理程式(控制證實物件的存取權限)# 4.智慧指引(呼叫物件代理處理另外一些事情如垃圾回收機制)注意事項:1、不能濫用代理,有時候只是為程式碼增加複雜度三、代理模式程式碼與實戰總結
<!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){ // console.log("收到了来自【"+this.maijia_name+"】"+money+"人民币"); console.log("收到了来自【"+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){ console.log("收到了钱"+money); } } (new to()).maifang(); to().maifang(); </script> </body> </html>#運行效果如下:
##以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
關於JS正規表示式的RegExp物件和括號的使用jQuery阻止事件冒泡實例分析#
以上是JavaScript設計模式中代理模式的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!