В чем проблема с вызовом метода caller и Callee двух разных классов, выполняющих вызовы различных методов класса на круговом уровне. Вы передаете эту «эту» ссылку в качестве параметра для какого-либо другого метода экземпляра класса, а Callee делает дополнительное приглашение метода на вызывающем, которое передается как параметр.Метод Caller и Callee, вызовы метода класса класса
Одна из причин этого. В классе фабрики различным реализациям нужны разные виды данных, поэтому вы помещаете данные, которые необходимы в виде нескольких методов контрактов/интерфейсов, и реализуют их вызывающий. Если у вас есть только один класс, проще реализовать инкапсуляцию, но разные классы требуют разных наборов данных.
Ниже приведен простой пример: здесь StudentService вызывает метод topscorer MathClassScorer, который, в свою очередь, вызывает метод getStudentList от StudentService. В сложном сценарии вы можете вызвать несколько методов родительского вызова.
public interface IStudentData {
public List<Student> getStudentList();
}
public class StudentService implements IStudentData {
private List<Student> studentList;
public String getTop() {
// Factory returns MathClassScorer
IScore scorer = ClassScorerFactory.get();
return scorer.topscorer(someOtherData, this);
}
@Override
public getStudentList() {
// do something and return studentList;
return studentList;
}
}
// IScore contains topscorer method
public class MathClassScorer implements IScore {
@Override
public String topscorer(Map someOtherData, IStudentData data) {
List<Student> studentList = data.getStudentList();
//do something before and after
return SOMETHING_AFTER
}
}
Вопрос в том, есть ли проблема в вышеуказанном подходе?
Нет проблем с этим. – Andreas
В чем вопрос? – k3b
Вопрос в том, есть ли проблема с подходом? – coder000001