生活中我们都有过去银行办理银行卡的体验,一般会有银行工作人员协助办理银行卡,那么这个工作人员就是一个代理,这种模式就是代理模式。
我们用java代码简单实现一下这个场景
首先将需要代理的事件写在一个接口里面:
public interface IBank {
//申请办卡
void applyCard();
}
银行卡实际办理人:
public class Man implements IBank{
@Override
public void applyCard() {
Log.e("tag","办卡!");
}
}
银行工作人员:
public class SalesMan implements IBank{
private IBank man;
public SalesMan(IBank man){
this.man = man;
}
@Override
public void applyCard() {
Log.e("tag","处理一些流程...");
//核心操作还是实际持有人
man.applyCard();
Log.e("tag","交付卡片");
}
}
调用:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Man man = new Man();
SalesMan salesMan = new SalesMan(man);
salesMan.applyCard();
}
}
运行该demo,打印日志:
12-11 13:50:55.765 11553-11553/com.example.myapplication E/tag: 处理一些流程...
12-11 13:50:55.765 11553-11553/com.example.myapplication E/tag: 办卡!
12-11 13:50:55.765 11553-11553/com.example.myapplication E/tag: 交付卡片