嗨,我正在用android编写应用程序,想知道以下最佳方法以及每种方法的潜在优缺点,如果您要从B类调用A类中定义的方法或将信息从A类传递到B
方法1:将方法A作为参数传递。
class A {
B object;
A(B object) {
this.object = object;
}
void someMethod() {
object.someOtherMethod();
}
}
class B {
void someOtherMethod(){
...
}
}
方法2:定义接口。
class A {
Helper helper;
A(Helper helper) {
this.helper= helper;
}
void someMethod() {
helper.someOtherMethod();
}
interface Helper {
void someOtherMethod();
}
}
class B implements A.Helper {
@Override
void someOtherMethod(){
...
}
}
在android docs中,我读到了将信息从Fragment传递到Activity的首选方法是第二种方法。但是想知道为什么会这样吗?
答案 0 :(得分:3)
如果我正确理解了您的问题,这听起来更像是一个关于为什么/何时在OOP中使用接口的问题。
最好的例子是当我们添加另一个类C时。如果类C也实现了A.Helper,则可以使用第二种方法将C毫无问题地传递给A。如果您使用第一种方法,则C不能传递给A,因为它需要一个B类型的对象。