Является ли правильной практикой, объединять несколько ссылок на объекты 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 шт):

Автор решения: default locale

По структуре All ничем не отличается от обычного POJO:

class Employee {
     Person person;
     Department department;
     Manager manager;
     ...
}

Т.е. в структуре, как таковой, ничего сверхкриминального нет. Целесообразность же зависит от того как класс будет использоваться.

Имеет ли All логический смысл? Можно ли дать классу какое-то осмысленное имя? Наверняка есть какая-либо причина по которой A, B и C часто используются вместе.

Будут ли у All какие-либо обязанности? Если над «вложенными» объектами выполняются одни и те же действия, то возможно их стоит заключить в методы как раз в All.

В общем, если All улучшает код, то он имеет смысл, если нет — то нет. Дать более точный ответ не зная как и где классы используются нельзя. Паттерны проектирования не висят в воздухе, они очень тесно связаны с алгоритмами.

→ Ссылка