代理模式:实现类与代理类要实现共同的接口,代理类中包装客户端与服务器端间的通信消息
类图介绍:
代码实现:
public interface Subject {
Result reqest();
}
public enum RealSubject implements Subject{
SINGLETON;
@Override
public Result reqest() {
// TODO Auto-generated method stub
return new Result();
}
}
public class ProxySubject implements Subject{
RealSubject realsubject=RealSubject.SINGLETON;
@Override
public Result reqest() {
// TODO Auto-generated method stub
preprocess(realsubject);
Result result=realsubject.reqest();
postprocess(realsubject, result);
return result;
}
void preprocess(Subject subject){
}
void postprocess(Subject subject,Result result){
}
}
测试类:
public class SubjectTest {
@Test
public void testReqest() {
Subject subject=new ProxySubject();
Result result=subject.reqest();
assertNotNull(result);
}
}