2016-12-09 3 views
0

У меня есть два класса. Когда я первый начал, он логически имеет смысл для меня, чтобы вкладывать их, потому что они непосредственно связаны друг с другом:Должен ли я вставлять эти классы в Java?

class ClassA 
{ 
    List<ClassB> list = new ArrayList(); 

    public boolean add(ClassB cB) 
    { 
     return list.add(cB); 
    } 

    public ClassB get(int index) 
    { 
     return list.get(index); 
    } 

    class ClassB 
    { 
     public int test() 
     { 
      return 123; 
     } 
    } 
} 

Как я прогрессировал, я начал задаваться вопросом, что было бы лучше, чтобы не вкладывать их. Если бы я хотел добавить конструктор в ClassA, например:

public ClassA(List<ClassB> list) 

это создаст трудности. Чтобы создать список для перехода к конструктору, мне потребовалось бы иметь экземпляр класса А, который, возможно, не был бы в то время, что бы победить цель создания такого конструктора в первую очередь.

Логически, я буду использовать ClassB только в сочетании с ClassA, но мне может потребоваться напрямую ссылаться на ClassB, не имея экземпляра ClassA для этого. Должен ли я вставлять эти классы или отделять их?

+0

Вы можете просмотреть документацию из команды java - https://docs.oracle.com/javase/tutorial/java/javaOO/whentouse.html - которая предоставит вам какое-то направление. –

+0

@BobLukens Спасибо. –

ответ

0

Если вы собираетесь ссылаться на ClassB, в то время как экземпляр ClassA недоступен, не вставляйте ClassB.

Если он должен быть вложен, вам потребуется объект ClassA для доступа к ClassB, поскольку он может существовать только в экземпляре ClassA.

Смежные вопросы