java之靜態代理

來源:互聯網
上載者:User

標籤:通過   cee   str   unit   static   jar   pom.xml   nts   實現   

? 著作權聲明:本文為博主原創文章,轉載請註明出處

定義:

  - 為其他對象提供一種代理以控制對這個對象的訪問

組成:

  抽象角色:通過介面或抽象類別聲明真正角色實現的業務方法

  真實角色:實現抽象角色,定義真實角色所要實現的商務邏輯,供代理角色調用

  代理角色:實現抽象角色,是真實角色的代理,通過真實角色的商務邏輯方法來實現抽象方法,並可以附加自己的操作

執行個體:

1.項目結構

2.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion><groupId>org.proxy</groupId><artifactId>StaticProxy</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies></project>

3.Hello.java

package org.proxy.StaticProxy;/** * 介面-抽象角色 * */public interface Hello {void say(String name);}

4.HelloImpl.java

package org.proxy.StaticProxy;/** * 實作類別-真實角色 * */public class HelloImpl implements Hello {public void say(String name) {System.out.println("Hello!" + name);}}

5.HelloProxy.java

package org.proxy.StaticProxy;/** * 代理角色 * */public class HelloProxy implements Hello {private Hello hello;public HelloProxy() {hello = new HelloImpl();}public void say(String name) {before();hello.say(name);after();}private void before() {System.out.println("Before");}private void after() {System.out.println("After");}}

6.TestStaticProxy.java

package org.proxy.test;import org.junit.Test;import org.proxy.StaticProxy.Hello;import org.proxy.StaticProxy.HelloProxy;public class TestStaticProxy {   @Testpublic void TestHello() {Hello helloProxy = new HelloProxy();helloProxy.say("Jack");}}

7.效果預覽

參考:《架構探險-從零開始寫Java Web架構》(黃勇著)

java之靜態代理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.