/*
代理模式,顾名思义就是委托别人去做事情。
在cocoa touch框架中的Delegate,委托人往往是框架中的对象(视图中的控件、tableView等),代理人往往是视图控制器对象。代理人首先得满足一个条件:就是在其头文件中申明它拥有代理资格,具体实现是在其类声明的地方添加如<代理类>,表示这他拥有代理资格。其次,在其实现文件中定义委托人可以让代理人去代替做的事情。当这个委托人需要办这些事时,代理人去办这些事。这就是ios中的Delegate模式。
*/
/*
在java中,Proxy代理模式是一种结构型设计模式,主要解决的问题是:避免直接访问对象;代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对这个对象的直接访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
代理模式,顾名思义就是委托别人去做事情。
在cocoa touch框架中的Delegate,委托人往往是框架中的对象(视图中的控件、tableView等),代理人往往是视图控制器对象。代理人首先得满足一个条件:就是在其头文件中申明它拥有代理资格,具体实现是在其类声明的地方添加如<代理类>,表示这他拥有代理资格。其次,在其实现文件中定义委托人可以让代理人去代替做的事情。当这个委托人需要办这些事时,代理人去办这些事。这就是ios中的Delegate模式。
*/
/*
在java中,Proxy代理模式是一种结构型设计模式,主要解决的问题是:避免直接访问对象;代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对这个对象的直接访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
*/
//下面举法人、法人代理执行签字的过程
public class Test{
public static void main(String[] args){
ArtificialPerson p = new ArtificialPerson();
ArtificialPersonProxy proxy = new ArtificialPersonProxy(p);
proxy.sign();
}
}
interface ArtificialPersonAction{
void sign();
}
class ArtificialPerson implements ArtificialPersonAction{
public void sign(){
System.out.println("法人签字");
}
}
class ArtificialPersonProxy implements ArtificialPersonAction{
protected ArtificialPersonAction action;
public ArtificialPersonProxy(ArtificialPersonAction action) {
this.action = action;
}
public void sign(){
System.out.println("法人签字前");
action.sign();
System.out.println("法人签字后");
}
}