一个故事开始:
我们去银行办理 银行卡:
我们不可能自己直接办理,我们要找工作人员帮我们办理,这个工作人员 我—>办理人员---->银行出银行卡
办理人员就称为 代码:
银行(一个接口) 的代码: 银行有的功能 办理银行卡 和注销银行卡片
代码:
interface Bank {
public void payCard();//办卡
public void cancleCard();//注销卡片
}
要办卡的人员 实现银行的接口
/**
* 普通人员
*/
public class Man implements Bank {
@Override
public void payCard() {
System.out.println("办输入一些卡的密码");
}
@Override
public void cancleCard() {
System.out.println("办输入一些卡的密码");
System.out.println("要提供身份证原件");
}
}
银行的办卡人员(代理类)实现银行接口
/**
* 银行的办卡人员
*/
public class SaleMan implements Bank {
Bank bank;
public SaleMan(Bank bank) { //因为我们虽然使用代理但是 也有有一部是需要自己操作的
this.bank = bank;
}
@Override
public void payCard() {
System.out.println("处理一些基本业务");
bank.payCard();
System.out.println("办卡完毕");
}
@Override
public void cancleCard() {
System.out.println("处理一些基本业务");
bank.cancleCard();
System.out.println("办卡完毕");
}
}
测试:
public class Main {
public static void main(String[] args) {
// write your code here
Man man = new Man();
SaleMan saleMan = new SaleMan(man); //代理办卡人员
//代理人员帮我们办卡
saleMan.payCard();
System.out.println("=============================================");
//代理人员帮我们注销银行卡
saleMan.cancleCard();
}
}
输出: