1. 程式人生 > >java所謂的閉包與回撥

java所謂的閉包與回撥

之所以覺得javascript寫起來特別的爽,尤其是在編寫非同步程式的時候,是因為javascript的閉包,使得我們能夠簡單的寫出非同步回調回調函式。。。。所以node.js的非同步程式設計也能很簡單的實現。。

在伺服器端程式設計方面,高效能十分依賴非阻塞,非同步和回撥,同時java這一大大的語言卻並沒有閉包這一概念(據說新版本有,但是我不知道),也可以採用一定委婉的方式來實現。。。。那就是內部類,因為內部類可以訪問所屬的外部類物件的所有屬性與方法,包括private的。。。。

好了,直接上程式碼吧:

public interface Incrementable {
	public int incrment();
}
public class MyIncremetable{
	private int a = 0;
	
	public Incrementable getCaller(){
		return new Incrementable(){

			@Override
			public int incrment() {
				// TODO Auto-generated method stub
				a++;
				return a;
			}
			
		};
	}
	
	
	public static void main(String args[]) {
		MyIncremetable m = new MyIncremetable();
		Incrementable inc = m.getCaller();
		System.out.println(inc.incrment());
	}
}
這樣子看起來貌似也能實現閉包和回撥,但是總覺得比較弱,而且並不能適合所有的情況。。。