创建结婚接口
public interface Marry {
public abstract void marry();
}
创建真实角色
/**
* @author Sky_Kong
* 2018-6-2 Saturday afernoon
* 1.创建真实结婚对象
*/
public class Groom implements Marry{ //新郎
private String name;//属性
// 无参构造
public Groom() {
super();
}
// 带参构造,创建对戏时初始化对象
public Groom(String name) {
super();
this.name = name;
}
//公有的取值赋值方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void marry() {
System.out.println(name+"结婚啦");
}
}
创建代理对象, 婚庆公司
public class MarryCompany implements Marry{
//给谁做代理,用private防止信息泄露
private Groom groom;
//带参构造,创建对象时,将真实对象传入
public MarryCompany(Groom groom) {
this.groom = groom;
}
//定义结婚前的准备方法
public void before() {
System.out.println("准备车队");
System.out.println("放....炮");
}
//定义结婚后的方法
public void after() {
System.out.println("收拾会场,收工!!!");
}
//结婚的方法
@Override
public void marry() {
// TODO Auto-generated method stub
before();
groom.marry(); //真实对象结婚的方法
after();
}
}
测试类
public class Test {
public static void main(String[] args) {
//创建新郎
Groom groom = new Groom("skykong");
//创建婚庆公司,并将真实结婚对象传入
MarryCompany marryCom = new MarryCompany(groom);
marryCom.marry();
}
}
实际应用, Thread做代理 Thread t = new Thread(Runnable target, String name)