Java中的靜態代理模式詳解
導讀 | 這篇文章主要為大家介紹了Java中的靜態代理模式,文中透過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 |
靜態代理模式
代理模式
代理人可以替受代理的人完成一些工作,比如:學校與學生之間的關係來說,學生就好比被被代理類,學生只需要負責上課,寫作業,考試等事務,而類似於課程,考試,任課教師的安排等都不需要學生去做,可以交給其學校完成。
靜態代理模式的實現要求
提供兩個真實的具體的類,代理類與被代理類;
兩個類同時實現同一個介面,介面中定義多個抽象方法(提取代理類,被代理各自的行為任務)
代理類一定要有被代理物件的引用,為了能在代理類中呼叫被代理類的重寫介面中的方法
舉例
介面-----包含代理人和被代理人需要進行的事務:
package static_assist; public interface affair { //考試 void testing(); //考試安排 void test_schedule(); //上課 void classing(); //課程安排 void classing_schedule(); //任課教師安排 void progamm_teacher(); }
代理人------學校:實現affair介面,並且重寫自己能夠完成的事務的方法,併產生被代理物件的引用,以便於呼叫被代理類中重寫的方法:
代理人不能完成的事務,需要使用被代理人的引用去呼叫該事務的方法
package static_assist; public class school implements affair { private student student;//被代理類的引用 public school(student student) { this.student=student; } public school() { } @Override public void testing() { student.testing(); } @Override public void test_schedule() { System.out.println("學校進行考試安排"); } @Override public void classing() { student.classing(); } @Override public void classing_schedule() { System.out.println("學校進行上課安排"); } @Override public void progamm_teacher() { System.out.println("學校進行任課教師安排"); } }
被代理人----學生:實現affair介面,並且只需要重寫自己能夠完成的事務的方法即可
package static_assist; public class student implements affair { @Override public void testing() { System.out.println("學生進行考試"); } @Override public void test_schedule() { } @Override public void classing() { System.out.println("學生去上課"); } @Override public void classing_schedule() { } @Override public void progamm_teacher() { } }
測試類:
package static_assist; public class Test { public static void main(String[] args) { school school=new school(new student());//產生代理類和被代理類的例項化物件,將被代理類的例項化物件傳遞到代理類 //透過代理類例項化物件呼叫各個事務方法 school.classing_schedule(); school.progamm_teacher(); school.classing(); school.test_schedule(); school.testing(); } }
輸出:
學校進行上課安排 學校進行任課教師安排 學生去上課 學校進行考試安排 學生進行考試
到此這篇關於詳解Java中的靜態代理模式的文章就介紹到這了
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2933019/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java靜態代理模式Java模式
- 代理模式詳解:靜態代理、JDK動態代理與Cglib動態代理模式JDKCGLib
- Java中的靜態代理和動態代理Java
- 詳解 Java 中的三種代理模式Java模式
- 靜態代理和動態代理(jdk/cglib)詳解JDKCGLib
- Java中的靜態內部類詳解Java
- JAVA 靜態代理 & 動態代理Java
- 20201207——靜態代理模式模式
- Java靜態代理Java
- 代理模式-靜態代理解讀模式
- Java代理之靜態代理Java
- 面試常問的設計模式之代理模式的詳細解析!分析說明靜態代理模式和動態代理模式面試設計模式
- 【設計模式】-代理模式及動態代理詳解設計模式
- Java代理設計模式(Proxy)的四種具體實現:靜態代理和動態代理Java設計模式
- 23種設計模式之代理模式(靜態代理)設計模式
- Java代理(jdk靜態代理、動態代理和cglib動態代理)JavaJDKCGLib
- 輕鬆理解 Java 靜態代理/動態代理Java
- Java基礎系列-靜態代理和動態代理Java
- Java 靜態代理和動態代理的使用及原理解析Java
- 代理模式詳解模式
- Java 中的代理模式Java模式
- java執行原理、靜態代理和動態代理區分Java
- 靜態代理和動態代理
- 設計模式總結——代理模式以及java的動態代理設計模式Java
- 由《尋秦記》說代理模式(靜態,動態,CGLib)模式CGLib
- Java中的設計模式詳解Java設計模式
- 靜態代理、動態代理與Mybatis的理解MyBatis
- 設計模式 - 代理模式詳解設計模式
- 設計模式:代理模式詳解設計模式
- 靜態代理模式——時間都去哪兒了模式
- 《Proxy系列專題》:代理模式(靜態、JDK、CGLib)模式JDKCGLib
- Spring AOP裡的靜態代理和動態代理,你真的瞭解嘛?Spring
- 靜態IP與動態IP有什麼區別?海外代理IP詳解
- Java進階 | Proxy動態代理機制詳解Java
- Java中靜態跟非靜態的區別總結Java
- 3.靜態代理&動態代理&CGlibCGLib
- AOP之靜態代理VS動態代理
- JDK動態代理詳解JDK