存在一个固定的接口,包含一些特殊逻辑,且这个接口不满足这些特殊逻辑,采用代理模式将特殊逻辑集成到特殊的类中
抽象角色:通过接口或抽象类声明真实角色实现的业务方法。
代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。
//抽象角色
public interface ITalk{
public void talk(string language);
}
//真实角色
public class People implements ITalk{
public void talk(string language){
//xxxxx
}
}
//代理角色
public class PeopleProxyForSing implements ITalk{
ITalk _talk;
public PeopleProxyForSing (ITalk talk){
_talk=talk;
}
public void talk(string language){
//todo 附加自己特殊实现
_talk.talk(language);//调用真实角色实现
//todo 附加自己特殊实现
}
}