标签:通过 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 {
@Test
public void TestHello() {
Hello helloProxy = new HelloProxy();
helloProxy.say("Jack");
}
}
7.效果预览

参考:《架构探险-从零开始写Java Web框架》(黄勇著)
标签:通过 cee str unit static jar pom.xml nts 实现
原文地址:http://www.cnblogs.com/jinjiyese153/p/6930242.html