1. 程式人生 > >寫一個介面回撥的簡單demo

寫一個介面回撥的簡單demo

寫一個demo吧。

先寫思路 畫圖太懶。。。

A - > B - >自身的方法( 實質上是呼叫介面c中的方法) - > A

類A實現了介面c 。 介面c 註冊在類B 中

所以這就是回撥??? 

我覺得暫時理解就這樣。

通俗講就是: A 問 B 問題 , B 就拿(拿就是b的方法)出自己的書C,結果A一看突然想起了答案(自己原來就學過C的)。

比喻不太恰當....但理解起來比較容易

接下來就是demo階段。

首先建立實體類User

public class User {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getInfo() {
        return Info;
    }

    public void setInfo(String info) {
        Info = info;
    }

    private String Info;

    public void UserPrint(){
        System.out.println("name:" + name + "doing" + Info);  //輸出User裡面資訊。
    }
}

 介面demoCode.  相當與類c

public interface demoCode {
    public void getOurUser(User user);
}

接下來就是 類b 

OutUser類

public class OutUser {
    private demoCode demoCode;
    public void setCode(demoCode demoCode){       //註冊了介面demoCode 就是介面c
        this.demoCode = demoCode;
    }

        public void OutUser(User user){
        if(demoCode != null){
            demoCode.getOurUser(user);
        }
    }
}

實現類 Relization

public class Relization implements demoCode {

    public static OutUser outUser;

    public void start(){
        outUser = new OutUser();
        outUser.setCode(this);
        User user = new User();
        user.setName("小明");
        user.setInfo("敲程式碼 - -。。");
        outUser.OutUser(user);
    }

    @Override
    public void getOurUser(User user) {
        user.UserPrint();
    }
}

test

public class test {
    public static void main(String args[]){
        Relization relization = new Relization();
        relization.start();
    }
}