一 前言
從事開發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回調機制的理解,歡迎圍觀!