package cn.thread;
/**
* 静态代理
* 同一个接口:
* 1.真实角色
* 2.代理角色
* @author Chill Lyn
*
*/
public class StaticProxy {
public static void main(String[] args) {
new Piggy(new Purchaser()).purchase();
}
}
/**
* 购票接口
*/
interface Ticket {
void purchase();
}
/**
* 真实角色
*/
class Purchaser implements Ticket {
@Override
public void purchase() {
System.out.println("真实角色:付款");
}
}
/**
* 代理角色
*/
class Piggy implements Ticket {
// 真实角色
private Ticket purchaser;
public Piggy(Ticket purchaser) {
this.purchaser = purchaser;
}
@Override
public void purchase() {
before();
this.purchaser.purchase();
after();
}
private void before() {
System.out.println("代理:填写购票人信息&购票");
}
private void after() {
System.out.println("代理:提供售后服务");
}
}
结果
代理:填写购票人信息&购票
真实角色:付款
代理:提供售后服务