成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

大話java的代理模式

CatalpaFlat / 3536人閱讀

摘要:代理模式的介紹代理模式是中常見,也是重要的一種模式,比如中的就是代理模式的一種應(yīng)用。相對(duì)于簡(jiǎn)單粗暴地直接訪問對(duì)象調(diào)用對(duì)象的方法,使用代理模式可以在對(duì)象的使用時(shí),進(jìn)行預(yù)處理和事后處理等。

1.代理模式的介紹
代理模式是java中常見,也是重要的一種模式,比如spring中的aop就是代理模式的一種應(yīng)用。
那么代理模式究竟有什么作用?代理模式就是“控制和管理對(duì)象的訪問”。相對(duì)于簡(jiǎn)單粗暴地直接訪問對(duì)象、調(diào)用對(duì)象的方法,使用代理模式可以在對(duì)象的使用時(shí),進(jìn)行預(yù)處理和事后處理等。比如權(quán)限控制、日志記錄。當(dāng)然你可以直接在對(duì)象里,做這些操作,但是這樣耦合性太高,不利于代碼的維護(hù)。

2.如何使用代理模式
一個(gè)實(shí)現(xiàn)代理模式的demo,主要需要3個(gè)類

1)委托類接口

//委托類接口
public interface TestService {

    void business();
    
}

2)委托類的實(shí)現(xiàn)

//委托類的實(shí)現(xiàn)類
public class TestImplement implements TestService{

    @Override
    public void business() {
        System.out.println("do the busniess");
    }
    
}

3)代理類

//委托類的代理類,注意需要implements 委托類
public class StaticProxy implements TestService{

    private TestService testService;

    public StaticProxy(TestService testService) {
        this.testService = testService;
    }
    
    @Override
    public void business() {
        //可以做一些預(yù)處理,比如數(shù)據(jù)處理、權(quán)限控制等
        System.out.println("before invoke,I can do something.");
        
        testService.business();
        
        //可以做一些事后處理,比如執(zhí)行結(jié)果的記錄,事務(wù)提交等
        System.out.println("before invoke,I can do something.");
    }
}

測(cè)試方法:

TestService service = new TestImplement();
StaticProxy proxy = new StaticProxy(service);
proxy.business();

測(cè)試輸出結(jié)果:
before invoke,I can do something.
do the busniess
before invoke,I can do something.

以上就是代理的簡(jiǎn)單的一種實(shí)現(xiàn),我們也叫靜態(tài)代理。因?yàn)檫@樣的實(shí)現(xiàn)方式,需要為每個(gè)委托類都寫代理類,會(huì)產(chǎn)生大量的代理類,也不利于代碼的復(fù)用和項(xiàng)目的解耦,所以我們會(huì)使用動(dòng)態(tài)代理去解決這些問題。關(guān)于動(dòng)態(tài)代理的詳細(xì)介紹會(huì)在下篇中繼續(xù)大話。

這是本人對(duì)于代理模式的一些理解,十分歡迎大家的指教和討論。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/70251.html

相關(guān)文章

  • 大話”設(shè)計(jì)模式

    摘要:抽象工廠模式是為了處理對(duì)象具有等級(jí)結(jié)構(gòu)以及對(duì)象族的問題。單例設(shè)計(jì)模式單例模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例,這個(gè)類成為單例類。 導(dǎo)語:設(shè)計(jì)模式是無數(shù)碼農(nóng)前人在實(shí)際的生產(chǎn)項(xiàng)目中經(jīng)過不斷的踩坑、爬坑、修坑的經(jīng)歷總結(jié)出來的經(jīng)驗(yàn)教訓(xùn),經(jīng)過抽象之后表達(dá)成的概念。能夠幫助后來的設(shè)計(jì)者避免重復(fù)同樣的錯(cuò)誤或者彎路。我也抽空整理了一下設(shè)計(jì)模式,用自己的話總結(jié)了一下,自認(rèn)...

    coordinate35 評(píng)論0 收藏0
  • Java深入-框架技巧

    摘要:從使用到原理學(xué)習(xí)線程池關(guān)于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實(shí)現(xiàn)在軟件開發(fā)中,分散于應(yīng)用中多出的功能被稱為橫切關(guān)注點(diǎn)如事務(wù)安全緩存等。 Java 程序媛手把手教你設(shè)計(jì)模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風(fēng)雨慢慢變老,回首走過的點(diǎn)點(diǎn)滴滴,依然清楚的記得當(dāng)初愛情萌芽的模樣…… Java 進(jìn)階面試問題列表 -...

    chengtao1633 評(píng)論0 收藏0
  • 深入理解代理模式

    摘要:代理模式代理類中創(chuàng)建一個(gè)真實(shí)對(duì)象的實(shí)例模式的核心裝飾者強(qiáng)調(diào)的是增強(qiáng)自身,在被裝飾之后你能夠在被增強(qiáng)的類上使用增強(qiáng)后的功能。 代理模式 在詳細(xì)了解代理模式之前,可能對(duì)于像小秋一樣的小白,只知道一些很淺顯的概念,或者就知道遠(yuǎn)程代理啊,靜態(tài)代理啊,動(dòng)態(tài)代理啊,這些看似可以望文生義的專業(yè)名詞,但是如果我告訴你代理模式貫穿了我們生活的方方面面,就比如你現(xiàn)在刷著公眾號(hào)的時(shí)候,實(shí)際上就用了遠(yuǎn)程代理模...

    testHs 評(píng)論0 收藏0
  • J2EE下常用設(shè)計(jì)模式

    摘要:當(dāng)然,除了讓我們顯得更加專業(yè)之外,在自己所學(xué)習(xí)或者工作的項(xiàng)目中,適當(dāng)合理的使用設(shè)計(jì)模式,能夠給項(xiàng)目帶來很大的好處。 簡(jiǎn)單說兩句 本文首發(fā)公眾號(hào)【一名打字員】 對(duì)不住各位老鐵了,年前說好要更幾波JAVA的東西,又偷懶了,沒辦法,在這里用小錘錘偷偷錘了自己幾下。由于工作原因,更新時(shí)間不定,各位老鐵有問題可以私聊我哈。 對(duì)于初學(xué)者或者是正在向中高級(jí)的Java程序猿(打字員)來說,時(shí)刻梳理自己...

    robin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<