日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式学习笔记(9)——代理模式

發布時間:2025/3/21 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式学习笔记(9)——代理模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

定義:代理模式就是給一個對象提供一個代理,并由代理對象控制對原對象的引用。

作用:為其他對象提供一種代理以控制對這個對象的訪問。

類圖:


在代理模式中有如下三個角色:

????? Subject: 抽象角色。聲明真實對象和代理對象的共同接口。

????? Proxy: 代理角色。代理對象與真實對象實現相同的接口,所以它能夠在任何時刻都能夠代理真實對象。代理角色內部包含有對真實對象的引用,所以她可以操作真實對象,同時也可以附加其他的操作,相當于對真實對象進行封裝。

????? RealSubject: 真實角色。它代表著真實對象,是我們最終要引用的對象

代碼:

public?interface?Sourceable?{public?void?method(); } public?class?Source?implements?Sourceable?{@Overridepublic?void?method()?{System.out.println("the?original?method!");} } public?class?Proxy?implements?Sourceable?{private?Source?source;public?Proxy(){//默認的話,是某個具體對象的代理this.source?=?new?Source();}public?Proxy(Sourceable?sourceable){this.source?=?sourceable;}@Overridepublic?void?method()?{before();source.method();atfer();}private?void?atfer()?{System.out.println("after?proxy!");}private?void?before()?{System.out.println("before?proxy!");} } public?class?ProxyTest?{public?static?void?main(String[]?args)?{Sourceable?source?=?new?Proxy();source.method();}}

代理模式的應用場景:

如果已有的方法在使用的時候需要對原有的方法進行改進,此時有兩種辦法:

1、修改原有的方法來適應。這樣違反了“對擴展開放,對修改關閉”的原則。

2、就是采用一個代理類調用原有的方法,且對產生的結果進行控制。這種方法就是代理模式。

使用代理模式,可以將功能劃分的更加清晰,有助于后期維護!


轉載于:https://my.oschina.net/jewill/blog/417144

總結

以上是生活随笔為你收集整理的设计模式学习笔记(9)——代理模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。