一 前言
从事开发n年了,对android回调机制理解的还不是很透彻,我也是够笨的,伤心!废话不多说,现根据我自己的理解,来分析一下android回调,大家一起来交流啊!
二 情景
虽然我很笨,但是本人注册了一家公司,哈哈,公司业务之一是帮新生儿取名字!
时间流逝…
终于等来了我的第一个客户张三!
张三:“你好,我想给自己的小孩取个好听的名字,巴啦啦巴…”
我:“好的,张先生,您的需求我了解了,两天后会给您一个满意的答复!请问我要怎么通知您呢?”
张三:“哦,这是我的名片,上面有我的邮箱,名字取好了,邮件发我吧!”
我:“好的,张先生!”
两天后,我把取好的名字邮件发给了张先生!张先生很满意,我的第一笔业务完成了,开心!!!
三 情景分析
涉及两个对象:公司(我)和张三
先来分析我的公司
我的公司业务流程是:收集张三的需求,开脑洞取名字,邮件通知张三。
再来分析张三
张三其实就一个行为:留一个方式让我通知他就可以了,回调函数
四 代码实现
//公司
public class Company {
//张三的资料
private ZhangSan zhangSan;
//收集张三资料
public void collectZhangSan(ZhangSan zhangSan){
this.zhangSan = zhangSan;
Log.d("TAG","收集张三的信息!");
}
public Company(){
Log.d("TAG","公司营业,等待客户!");
}
//开脑洞取名字
public void createName(String name){
Log.d("TAG","两天时间开脑洞,取名字...");
Log.d("TAG","取好名字后,发邮件给张三");
//email通知张三
zhangSan.emailName(name);
}
public void afterSale(){
Log.d("TAG","张三收到名字,"+zhangSan.getName()+"很满意");
}
}
//张三
public class ZhangSan {
public ZhangSan(){
Log.d("TAG","第一个客户张三上门");
}
private String name;
public String getName() {
return name;
}
//给孩子上户口
private void setName(String name) {
Log.d("TAG","张三很满意,给迪丽热巴上了户口!");
this.name = name;
}
//留一个邮箱等通知,回调函数
public void emailName(String name){
Log.d("TAG","张三,您有一个新邮件,您孩子的名字是:"+name);
//收到名字,给孩子上户口!
setName(name);
}
}
//业务模拟
public class Test extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//公司营业
Company company = new Company();
//张三上门
ZhangSan zhangSan = new ZhangSan();
//公司收集张三资料
company.collectZhangSan(zhangSan);
//开脑洞取名字,并通知张三
company.createName("迪丽热巴");
//售后回访
company.afterSale();
}
}
通过分析我公司的业务流程,分析了android的回调机制,不知道我分析的清不清楚,接下来还会继续完善对java回调机制的理解,欢迎围观!