Хорошо, так что это проблема, с которой я сталкиваюсь. Сейчас есть много способов сделать это, но мне интересно, что вы считаете «лучшей практикой»
Предположим, у нас есть структура проекта следующим образом:
Java Project:
src/
PackageA/
ClassA.java
PackageB/
ClassB.java
ClassC.java
Main.java
Каждый класс следует:
public class Main {
private ClassA classA;
private ClassB classB;
public Main(){
}
public void runMainMethod(){
//Init Objects
classA = new ClassA();
classB = new ClassB();
classA.getDataFromClassC();
}
}
public class ClassA {
public ClassA(){
}
public void getDataFromClassC(){
//Best way to get Data from classC?
}
}
public class ClassB {
private ClassC classC;
public ClassB(){
loadClassC();
}
private void loadClassC(){
classC = new ClassC("ExampleName");
}
}
public class ClassC {
private String name;
public ClassC(String name){
this.name = name;
}
public String getNam(){
return name;
}
}
Мне хочется пропустить Main через каждый класс и создать метод получения в Main (для класса B), а затем другой метод получения в B (для класса C) излишним.
Особенно, если он идет глубже. Что если класс C содержит объект класса D? И я хотел получить доступ к классу D из класса A?
Может быть, я не выполняю лучшую практику для OOP?
Любая информация о том, как вы справляетесь с этим, или лучшая практика будет с благодарностью!
Вопрос2: Что делать, если вы хотите, чтобы только один класс B (возможно, потому что класс C был загружен из файла, и несколько классов B не будут синхронизированы по отношению к классу C).
Например, я хочу избежать этой проблемы:
ClassC classC = new ClassB().getClassC();
ClassC2 classC2 = new Class().getClassC();
classC.setName("C");
classC2.setName("C2);
, где оба класса имеют разные значения имен