| 作者 |
内容 |
| 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 |
酷帖! 臭帖! 回复 |
|
酷帖评价: 臭帖评价: |
| 返回页首 |
|