Является ли правильной практикой, объединять несколько ссылок на объекты POJO классов в один класс, для удобного доступа к ним через последний
Например:
public class A {
// Какие-то переменные экземпляра и т.д.
}
public class B {
// Какие-то переменные экземпляра и т.д.
}
public class C {
// Какие-то переменные экземпляра и т.д.
}
И класс который объединяет все остальные:
public class All {
private A a;
private B b;
private C c;
public All(A a, B b, C c) {
this.a = a;
this.b = b;
this.c = c;
}
// Геттеры и сеттеры для получения доступа к переменным экземпляра.
}
Имеет ли такой подход место жить? Или все-таки лучше получать доступ к экземплярам классов по отдельности?
Ответы (1 шт):
По структуре All ничем не отличается от обычного POJO:
class Employee {
Person person;
Department department;
Manager manager;
...
}
Т.е. в структуре, как таковой, ничего сверхкриминального нет. Целесообразность же зависит от того как класс будет использоваться.
Имеет ли All логический смысл? Можно ли дать классу какое-то осмысленное имя? Наверняка есть какая-либо причина по которой A, B и C часто используются вместе.
Будут ли у All какие-либо обязанности? Если над «вложенными» объектами выполняются одни и те же действия, то возможно их стоит заключить в методы как раз в All.
В общем, если All улучшает код, то он имеет смысл, если нет — то нет. Дать более точный ответ не зная как и где классы используются нельзя. Паттерны проектирования не висят в воздухе, они очень тесно связаны с алгоритмами.