1、接口
package com.wyq.marry;
public interface Marry {
public void marry();
}
2、被代理者
package com.wyq.marry;
public class you implements Marry{
@Override
public void marry() {
System.out.println("XXX和YYY结婚。。。。");
}
}
3、代理者
package com.wyq.marry;
public class MarryCom implements Marry {
//这里是成员变量
private Marry m;
//这里方法
public MarryCom(Marry m){
this.m = m;
}
public void buzhi(){
System.out.println(m+"正在布置会场。。");
}
@Override
public void marry() {
//调用的是接口的实现类的结婚的方法
//调用的是上边从接口中继承过来的这个方法
m.marry();
}
public void clean(){
System.out.println(m+"正在打扫会场。。。");
}
}
4、测试类
package com.wyq.marry;
public class Test {
public static void main(String[] args) {
//you创建对象
you y = new you();
//marrycom创建对象
MarryCom mc = new MarryCom(y);
mc.buzhi();
mc.marry();
mc.clean();
}
}
代理设计模式 (原理理解)
真实角色
代理角色
(1)真实角色与代理角色实现/继承同一个接口/父类
(2)接口作为代理类中的私有属性
(3)代理类中编写带参构造方法 (接口作方法的形式参数)
(4)测试
创建真实角色对象
创建代理类对象 (真实角色)
代理类的对象.调用方法