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

Java中靜態(tài)代理的使用與原理詳解

 更新時間:2023年09月20日 09:42:56   作者:流煙默  
這篇文章主要介紹了Java中靜態(tài)代理的使用與原理詳解,代理模式是為一個對象提供一個替身,以控制對這個對象的訪問,即通過代理對象訪問目標對象.這樣做的好處是:可以在目標對象實現(xiàn)的基礎上,增強額外的功能操作,即擴展目標對象的功能,需要的朋友可以參考下

概述

代理模式是為一個對象提供一個替身,以控制對這個對象的訪問。即通過代理對象訪問目標對象.這樣做的好處是:可以在目標對象實現(xiàn)的基礎上,增強額外的功能操作,即擴展目標對象的功能。

被代理的對象可以是遠程對象、創(chuàng)建開銷大的對象或需要安全控制的對象

代理模式有不同的形式, 主要有三種靜態(tài)代理、動態(tài)代理(JDK 代理、接口代理)和Cglib 代理(可以在內(nèi)存 動態(tài)的創(chuàng)建對象,而不需要實現(xiàn)接口, 他是屬于動態(tài)代理的范疇) 。

靜態(tài)代理在使用時,需要定義接口或者父類,被代理對象(即目標對象)與代理對象一起實現(xiàn)相同的接口或者是繼承相同父類。

應用案例

① 代碼實現(xiàn)

具體要求

  • 定義一個接口:ITeacherDao
  • 目標對象TeacherDAO 實現(xiàn)接口ITeacherDAO
  • 使用靜態(tài)代理方式,就需要在代理對象TeacherDAOProxy 中也實現(xiàn)ITeacherDAO
  • 調(diào)用的時候通過調(diào)用代理對象的方法來調(diào)用目標對象.
  • 特別提醒:代理對象與目標對象要實現(xiàn)相同的接口,然后通過調(diào)用相同的方法來調(diào)用目標對象的方法
public interface ITeacherDao {
	void teach(); // 授課的方法
}
public class TeacherDao implements ITeacherDao {
	@Override
	public void teach() {
		System.out.println(" 老師授課中  。。。。。");
	}
}
//代理對象,靜態(tài)代理
public class TeacherDaoProxy implements ITeacherDao{
	private ITeacherDao target; // 目標對象,通過接口來聚合
	//構(gòu)造器
	public TeacherDaoProxy(ITeacherDao target) {
		this.target = target;
	}
	@Override
	public void teach() {
		System.out.println("開始代理  完成某些操作。。。。。 ");//方法
		target.teach();
		System.out.println("提交。。。。。");//方法
	}
}
//測試客戶端
public class Client {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//創(chuàng)建目標對象(被代理對象)
		TeacherDao teacherDao = new TeacherDao();
		//創(chuàng)建代理對象, 同時將被代理對象傳遞給代理對象
		TeacherDaoProxy teacherDaoProxy = new TeacherDaoProxy(teacherDao);
		//通過代理對象,調(diào)用到被代理對象的方法
		//即:執(zhí)行的是代理對象的方法,代理對象再去調(diào)用目標對象的方法 
		teacherDaoProxy.teach();
	}
}

② UML類圖

在這里插入圖片描述

③ 靜態(tài)代理的優(yōu)缺點

優(yōu)點:在不修改目標對象的功能前提下, 能通過代理對象對目標功能擴展

缺點:因為代理對象需要與目標對象實現(xiàn)一樣的接口,所以會有很多代理類

一旦接口增加方法,目標對象與代理對象都要維護

到此這篇關(guān)于Java中靜態(tài)代理的使用與原理詳解的文章就介紹到這了,更多相關(guān)Java靜態(tài)代理原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解mybatis foreach collection示例

    詳解mybatis foreach collection示例

    這篇文章主要介紹了詳解mybatis foreach collection的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • SpringBoot整合spring-data-jpa的方法

    SpringBoot整合spring-data-jpa的方法

    這篇文章主要介紹了SpringBoot整合spring-data-jpa的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • springboot-mysql-HikariCP集成過程

    springboot-mysql-HikariCP集成過程

    HiKariCP opens new window是數(shù)據(jù)庫連接池的一個后起之秀,號稱性能最好,可以完美地 PK 掉其他連接池,這篇文章主要介紹了springboot-mysql-HikariCP集成過程,需要的朋友可以參考下
    2023-07-07
  • Java之HashMap案例詳解

    Java之HashMap案例詳解

    這篇文章主要介紹了Java之HashMap案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java StringTokenizer分隔符拆分字符串

    Java StringTokenizer分隔符拆分字符串

    Java中的StringTokenizer類用于將一個字符串分解成標記,本文主要介紹了Java StringTokenizer分隔符拆分字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Java實現(xiàn)簡單郵件發(fā)送功能

    Java實現(xiàn)簡單郵件發(fā)送功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單郵件發(fā)送功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 使用Spring自定義注解實現(xiàn)任務路由的方法

    使用Spring自定義注解實現(xiàn)任務路由的方法

    本篇文章主要介紹了使用Spring自定義注解實現(xiàn)任務路由的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • springboot 日志實現(xiàn)過程

    springboot 日志實現(xiàn)過程

    Spring Boot 使用 SLF4J 作為日志門面,Logback 或 Log4j2 作為日志實現(xiàn),日志門面提供統(tǒng)一接口,簡化日志記錄,實現(xiàn)負責具體功能,Spring Boot 默認使用 SLF4J 和 Logback,可以通過配置文件或注解進行日志記錄和控制,感興趣的朋友一起看看吧
    2025-01-01
  • 虛擬線程在Spring?Boot中的正確使用方式及最佳實踐

    虛擬線程在Spring?Boot中的正確使用方式及最佳實踐

    虛擬線程是Java19引入的一項新特性,它屬于Project Loom項目的一部分,與傳統(tǒng)的線程不同,虛擬線程并不是由操作系統(tǒng)直接管理,而是由Java虛擬機控制,這篇文章主要介紹了虛擬線程在Spring?Boot中的正確使用方式及最佳實踐的相關(guān)資料,需要的朋友可以參考下
    2026-03-03
  • java生成圖片驗證碼返回base64圖片信息方式

    java生成圖片驗證碼返回base64圖片信息方式

    這篇文章主要介紹了java生成圖片驗證碼返回base64圖片信息方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

岐山县| 铁力市| 绩溪县| 建湖县| 陆丰市| 察隅县| 广宗县| 大方县| 广灵县| 西乌珠穆沁旗| 镇康县| 遵化市| 青田县| 清苑县| 乾安县| 治多县| 河源市| 临海市| 西吉县| 秭归县| 集安市| 泸西县| 什邡市| 买车| 万山特区| 张家口市| 峨眉山市| 德庆县| 宜君县| 江陵县| 洛浦县| 阿坝县| 南宫市| 龙岩市| 澄迈县| 利川市| 淮安市| 玛纳斯县| 万源市| 遂昌县| 怀集县|