在C和C++中,函數的傳遞可以通過函數指針來實現。在C#中,函數傳遞可以通過委托、Action、Func來實現。Java中沒有函數指針、沒有委托,那函數要如何傳遞呢?
可以通過以下兩種方式實現。
1、通過handler,在A類中實例化B類,並傳遞一個handler到B中。B通過handler發送消息,A中接收到消息後,執行相應的函數。嚴格的來說,這種不算是函數傳遞,只是變相達到了函數調用的目的。
2、通過接口來實現。下面是實現的代碼。
ICallback.java
package com.sparkle.sgmjl;
public interface ICallback {
abstract void callback(String data);
}
在A類中傳遞ICallback給B類,代碼如下。
ClassA.java
ClassA classA=new ClassA( new ICallback() {
@Override
public void callback(String data) {
Test(data);
}
});
private void Test(String data)
{
Log.e("TEST",data))
}
ClassB.java
public ClassB(ICallback icallback)
{
icallback("Call OK");
}
以上簡記,以備後用。
Java中介者設計模式 http://www.linuxidc.com/Linux/2014-07/104319.htm
Java 設計模式之模板方法開發中應用 http://www.linuxidc.com/Linux/2014-07/104318.htm
設計模式之 Java 中的單例模式(Singleton) http://www.linuxidc.com/Linux/2014-06/103542.htm
Java對象序列化 http://www.linuxidc.com/Linux/2014-10/107584.htm
大話設計模式(帶目錄完整版) PDF+源代碼 http://www.linuxidc.com/Linux/2014-08/105152.htm