作者 内容
 guyking  请问这种问题怎么设计?
 

问题描述;
有一个通用算法,例如:
void meth()
{
A();
B();
}
其中A()过程要根据不同的情况执行不同的函数组合,
如果是在C中,可以通过给A()传递指向函数的指针(数组)来实现,但是在Java中如何实现呢?

 02/07/04 11:04 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 jdst   回复: 请问这种问题怎么设计?
 

我可能没有明白你的问题,我觉得用引用就可以了啊。

 02/07/04 11:58 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 jan.   回复: 请问这种问题怎么设计?
 

java本身对对象的引用(reference)实际上就与指针是相似的

 02/07/04 13:03 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 gdd_go   用重载的方法来实现。
 

你先声明一个基类,定义一个计算方法的虚函数如叫Run.
再把你的各种计算方法写在派生类的Run方法中,传给A()的参数是具体的子类,然后用调子类的Run方法就可以了。
//示例:
class Base
{
virtual int Run();
}
class ChildA
{
int Run()
{ //计算过程A
}

}
class ChildB
{
int Run()
{ //计算过程B
}

}

。。。//////////A函数就可以写成如下
void A(Base b1, Base b2)
{
b1.Run()
b2.Run()
}
...//调用A
A(new ChildA, new ChildB)


 

 02/07/04 16:27 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 hhhxxx  回复: 请问这种问题怎么设计?
 

请参考《设计模式》中的策略模式

 02/07/04 20:05 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首