Rangka kerja umum mempunyai antara muka untuk menetapkan panggilan balik/cangkuk Apabila peristiwa berlaku dalam rangka kerja, panggilan balik yang ditetapkan oleh pengguna akan dipanggil Sebagai contoh, berikut ialah contoh mudah:
public class CallbackTest {
public static void main(String args[]) throws Exception {
// 1. 实例化一个回调逻辑.
Callback userCallback = new Callback() {
@Override
public void call(String message) {
System.out.println("Call from framework, message: " + message);
}
};
// 2. 初始化一个假象的框架, 并设置用户的回调接口.
SomeFramework framework = new SomeFramework(userCallback);
// 3. 启动框架
framework.start();
Thread.sleep(5000);
}
interface Callback {
void call(String message);
}
static class SomeFramework implements Runnable {
Callback userCallback;
public SomeFramework(Callback userCallback) {
this.userCallback = userCallback;
}
public void start() {
new Thread(this).start();
}
@Override
public void run() {
try {
Thread.sleep(3000);
somethingHappened();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 4. 当框架内的状态变化时或者是发生了某个事件时, 就调用用户设置的回调接口.
private void somethingHappened() {
userCallback.call("Something happended!");
}
}
}
Sebenarnya, ia sedikit seperti mod dipacu peristiwa atau pemerhati Rangka kerja menyimpan antara muka panggil balik pengguna, dan antara muka ini berfungsi sebagai jambatan untuk komunikasi antara rangka kerja dan kod pengguna apabila rangka kerja mengesan kejadian itu , ia menggunakan antara muka panggil balik ini untuk memberitahu pengguna tentang kod.
Janji...janji...saya cadangkan anda lihat mod pemerhati
Contohnya, jika anda menambahkan pendengar tindakan pada butang
button.addActionListener(new ActionListener() {
public actionPerformed(ActionEvent e) {
// do something
}
});
Adalah dipersetujui bahawa pendengar tindakan akan dicetuskan apabila butang ditekan, jadi apabila anda menambahnya, anda sudah tahu bila ia akan dipanggil. Walaupun anda tidak mengetahui titik masa tertentu, anda tahu bahawa jika sesuatu berlaku, ia akan dipanggil.
Rangka kerja umum mempunyai antara muka untuk menetapkan panggilan balik/cangkuk Apabila peristiwa berlaku dalam rangka kerja, panggilan balik yang ditetapkan oleh pengguna akan dipanggil
Sebagai contoh, berikut ialah contoh mudah:
Sebenarnya, ia sedikit seperti mod dipacu peristiwa atau pemerhati Rangka kerja menyimpan antara muka panggil balik pengguna, dan antara muka ini berfungsi sebagai jambatan untuk komunikasi antara rangka kerja dan kod pengguna apabila rangka kerja mengesan kejadian itu , ia menggunakan antara muka panggil balik ini untuk memberitahu pengguna tentang kod.
Janji...janji...saya cadangkan anda lihat mod pemerhati
Contohnya, jika anda menambahkan pendengar tindakan pada butang
Adalah dipersetujui bahawa pendengar tindakan akan dicetuskan apabila butang ditekan, jadi apabila anda menambahnya, anda sudah tahu bila ia akan dipanggil. Walaupun anda tidak mengetahui titik masa tertentu, anda tahu bahawa jika sesuatu berlaku, ia akan dipanggil.