最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設計模式之靜態(tài)代理模式實例分析

 更新時間:2018年04月26日 11:13:28   作者:aronykl  
這篇文章主要介紹了Java設計模式之靜態(tài)代理模式,結合實例形式分析了靜態(tài)代理模式的概念、原理、定義與用法,需要的朋友可以參考下

本文實例講述了Java設計模式之靜態(tài)代理模式。分享給大家供大家參考,具體如下:

代理模式,可以通過代理可以在原來的基礎上附加一些其他的操作。靜態(tài)代理模式相對比較簡單無需再程序運行時動態(tài)的進行代理。

靜態(tài)代理模式的角色:

① 抽象角色:真實對象和代理對象的共同接口。其中聲明真實對象和代理對象需要做的事。
② 真實角色:實現(xiàn)抽象角色,定義真實角色所要實現(xiàn)的業(yè)務邏輯,供代理角色調用。
③ 代理角色:實現(xiàn)抽象角色,是真實角色的代理,通過真實角色的業(yè)務邏輯方法來實現(xiàn)抽象方法,并可以附加自己的操作。

下面提供一個簡單的靜待代理的示例代碼:

1. 抽象角色:真實對象和代理對象的共同接口。其中聲明真實對象和代理對象需要做的事。

package com.tydic.proxy;
/**
 * 真實角色和代理角色的共同接口
 * @author Administrator
 *
 */
public abstract class Subject {
  //真實對象和代理對象需要做的事
  public abstract void request();
}

2. 真實角色:需要實現(xiàn)抽象角色,是被代理的對象。

package com.tydic.proxy;
/**
 * 真實角色
 * @author Administrator
 *
 */
public class RealSubject extends Subject {
  @Override
  public void request() {
    System.out.println("from real subject!");
  }
}

3. 代理角色:實現(xiàn)抽象角色,并持有一個真實角色的引用。

package com.tydic.proxy;
/**
 * 代理角色
 * @author Administrator
 *
 */
public class ProxySubject extends Subject {
  private RealSubject realSubject;//代理角色內部引用了真實角色
  @Override
  public void request() {
    this.preRequest();//在真實對象操作之前所附加的操作
    if(null == realSubject){
      realSubject = new RealSubject();
    }
    realSubject.request();//真實角色完成的事情
    this.postRequest();//在真實對象操作之后附加的操作
  }
  private void preRequest(){
    System.out.println("pre request!");
  }
  private void postRequest(){
    System.out.println("post request!");
  }
}

4. 編寫客戶端代碼

package com.tydic.proxy;
public class Client {
  public static void main(String[] args) {
    Subject subject = new ProxySubject();
    subject.request();
  }
}

更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • Hashmap非線程安全關于hash值沖突處理

    Hashmap非線程安全關于hash值沖突處理

    這篇文章主要為大家介紹了Hashmap非線程安全關于hash值沖突的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Struts攔截器實現(xiàn)攔截未登陸用戶實例解析

    Struts攔截器實現(xiàn)攔截未登陸用戶實例解析

    這篇文章主要介紹了Struts攔截器實現(xiàn)攔截未登陸用戶實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • springmvc處理異步請求的示例

    springmvc處理異步請求的示例

    這篇文章主要介紹了springmvc處理異步請求的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot配置的加載流程詳細分析

    SpringBoot配置的加載流程詳細分析

    了解內部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的,這篇文章主要介紹了SpringBoot配置的加載流程
    2023-01-01
  • Springboot之@ConfigurationProperties注解解讀

    Springboot之@ConfigurationProperties注解解讀

    在Spring Boot中,@EnableConfigurationProperties注解的主要作用是激活@ConfigurationProperties注解的配置屬性類,從而讓配置屬性類能被Spring容器管理,這樣的話,我們就可以在屬性類中輕松地使用@ConfigurationProperties來綁定配置文件中的屬性
    2024-10-10
  • Java開發(fā)實現(xiàn)人機猜拳游戲

    Java開發(fā)實現(xiàn)人機猜拳游戲

    這篇文章主要為大家詳細介紹了Java開發(fā)實現(xiàn)人機猜拳游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Java接口和抽象類實現(xiàn)抽象和多態(tài)的方法示例

    Java接口和抽象類實現(xiàn)抽象和多態(tài)的方法示例

    接口和抽象類是 Java 中兩種實現(xiàn)抽象和多態(tài)的方法。它們之間有一些區(qū)別,但也有一些相似之處。這一節(jié)我們將通過詳細的例子來更深入地了解接口和抽象類
    2023-05-05
  • java設計模式Ctrl?C和Ctrl?V的原型模式詳解

    java設計模式Ctrl?C和Ctrl?V的原型模式詳解

    這篇文章主要為大家介紹了java設計模式Ctrl?C和Ctrl?V的原型模式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java ArrayList與LinkedList及HashMap容器的用法區(qū)別

    Java ArrayList與LinkedList及HashMap容器的用法區(qū)別

    這篇文章主要介紹了Java ArrayList與LinkedList及HashMap容器的用法區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-07-07
  • Java檢測網(wǎng)絡是否正常通訊

    Java檢測網(wǎng)絡是否正常通訊

    在網(wǎng)絡應用程序中,檢測IP地址和端口是否通常是必要的,本文主要介紹了Java檢測網(wǎng)絡是否正常通訊,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11

最新評論

西贡区| 平江县| 惠来县| 云龙县| 南宁市| 兰坪| 永丰县| 滦南县| 论坛| 新巴尔虎左旗| 保康县| 新竹县| 汶川县| 政和县| 湘潭市| 上林县| 灵丘县| 唐山市| 罗定市| 屯门区| 清水河县| 彰化县| 阜新| 河津市| 揭东县| 遂昌县| 曲阜市| 玛沁县| 河源市| 满洲里市| 法库县| 睢宁县| 永宁县| 通许县| 巴里| 普兰店市| 奈曼旗| 临潭县| 陇川县| 溧水县| 治县。|