①UML设计:
②定义以及使用场景:代理模式是使用代理对象执行目标对象的方法,并增强目标对象方法的一种设计模式。在某些情况下,一个客户端不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象中起到中介作用。AOP核心思想就是代理模式。
③示例:定义一个接口Message,定义两个功能类和一个代理类,都实现了Message接口
public interface Message{
void sendMessage(String message ,String from);
}
public class QQ implements Message{
@Override
public void sendMessage(String message,String from){
System.out.println("QQ message " + message + "from" + from);
}
}
public class WX implements Message{
@Override
public void sendMessage(String message,String from){
System.out.println("WX message " + message + "from" + from);
}
}
public class MessageProxy implements Message{
private List<Message> messages;
public MessageProxy(){
messages = Lists.newArrayList();
messages.add(new QQ());
messages.add(new WX());
}
@Override
public void sendMessage(String message,String from){
message.forEach(m -> {
m.sendMessage(message,from);
});
}
}
public class Test{
public static void main(String args[]){
MessageProxy mp = new MessageProxy();
mp.sendMessage("message","someone");
}
}