循環呼び出しのクラス・レベルの異なるメソッド呼び出しを行う2つの異なるクラスのメソッド呼び出し元と呼び出し先の問題点は何ですか?他のいくつかのクラスインスタンスメソッドへのパラメータとして "this"参照を渡し、パラメータとして渡された呼び出し側のさらなるメソッド招待をCalleeが行っています。メソッド呼び出し元と呼び出し先、循環クラス・レベルのメソッド呼び出し
ファクトリクラスでは、さまざまな実装が異なる種類のデータを必要とするため、必要なデータを複数のコントラクト/インターフェイスメソッドとして配置し、呼び出し元に実装させます。クラスが1つしかない場合、カプセル化を実装する方が簡単ですが、のクラスでは異なるデータセットが必要です。
以下はその簡単な例です。ここでStudentServiceはMathClassScorerのtopscorerメソッドを呼び出し、StudentServiceのgetStudentListメソッドを呼び出します。複雑なシナリオでは、親呼び出し元の複数のメソッドを呼び出すことがあります。
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