對android回撥的理解(一)
阿新 • • 發佈:2019-02-07
一 前言
從事開發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回撥機制的理解,歡迎圍觀!