Java的写法
接口,Interface IA{
bool methodA();
void methodB();
//......
}具体操作的类
class Manager(){
public void methodProcess(IA iA){
if(iA.methodA()){
//XXXXX
iA.methodB();
}
}
}
调用端
class Customer(){
public static void main(){
Manager m = new Manager();
m.methodProcess(new IA(){
@Override
public bool methodA(){
//XXXX
}
@Override
public void methodB(){
//XXXX
}
} }
}
------------------------问题--------------------------------
m.methodProcess(new IA(){
@Override
public bool methodA(){
//XXXX
}
@Override
public void methodB(){
//XXXX
}
}
这个是关键,在.net不能这样用,就是匿名创建一个接口对象
-------------------期望目标-------------------------
Manager是某种操作或算法,依懒于Customer端的具体的某些行为,所以Customer要调用Manager时必须传入Customer特定的行为,Customer类会有很多很多~~~,就像Ajax的回调一样,每个调用Ajax的成功或失败它所要做的事情肯定是不一样的,而调用Ajax在一个普通的网站上是多如牛毛~~分数不够,只能给这么点-_-!!!
接口,Interface IA{
bool methodA();
void methodB();
//......
}具体操作的类
class Manager(){
public void methodProcess(IA iA){
if(iA.methodA()){
//XXXXX
iA.methodB();
}
}
}
调用端
class Customer(){
public static void main(){
Manager m = new Manager();
m.methodProcess(new IA(){
@Override
public bool methodA(){
//XXXX
}
@Override
public void methodB(){
//XXXX
}
} }
}
------------------------问题--------------------------------
m.methodProcess(new IA(){
@Override
public bool methodA(){
//XXXX
}
@Override
public void methodB(){
//XXXX
}
}
这个是关键,在.net不能这样用,就是匿名创建一个接口对象
-------------------期望目标-------------------------
Manager是某种操作或算法,依懒于Customer端的具体的某些行为,所以Customer要调用Manager时必须传入Customer特定的行为,Customer类会有很多很多~~~,就像Ajax的回调一样,每个调用Ajax的成功或失败它所要做的事情肯定是不一样的,而调用Ajax在一个普通的网站上是多如牛毛~~分数不够,只能给这么点-_-!!!
obj.Invoke(new Callback(delegate(object args){
// do something
}));
这个想法对。委托。
而且比Java的形式要简单。
我记得没做的话Java里面没有委托这个东西所以只能这样玩了