1. 程式人生 > >對android回撥的理解(一)

對android回撥的理解(一)

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