代码:
interface Subject{
void buy();
}
class User implements Subject{
public void buy(){
System.out.println("购票");
}
}
class XC implements Subject{
XC(Subject my_sub){
this.my_sub=new User();
}
public void buy(){
System.out.print("携程帮忙");
my_sub.buy();
}
private Subject my_sub;
}
class Demo{
public static void main(String[] argv){
Subject user_test=new User();
user_test.buy();
XC xc_test=new XC(user_test);
xc_test.buy();
}
}
思路:购票列子
我们有我们的抽象基类
具体实现类,我们的用户具体要干的事情
代理类,继承于我们的抽象基类,通过代理类的成员去调用具体实现类
类图:
优缺点:
优点
-
职责清晰:真实角色就是实现实际业务逻辑,不关心其他非本职责事务,通过后期代理完成一件事务。
-
高扩展性:具体主题角色可变。
缺点
-
代理模式可能会造成请求的处理速度变慢