本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结
代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。
结构图
IService
提供了一项服务sayHello
,具体由MyService
实现,而ServiceProxy
可以起到一个控制的作用
public interface IService {
String sayHello();
}
public class MyService implements IService {
@Override
public String sayHello() {
return "Hello Service";
}
}
public class ServiceProxy implements IService {
private IService service;
public ServiceProxy(IService service) {
this.service = service;
}
@Override
public String sayHello() {
System.out.println("before sayHello");
String value = service.sayHello();
System.out.println("after sayHello");
return value;
}
}
运行
public static void main(String[] args) {
IService service = new ServiceProxy(new MyService());
System.out.println(service.sayHello());
}
输出
相关文章
Java 设计模式