Просматривая статьи о оракуле и Java на эту тему, я не нашел ничего «неправильного» или, возможно, «проблемного» в этой структуре.
Я имею в виду класс, который действует как экземпляр хранилища данных, а также сохраняет себя в том же классе через статические методы получения / установки и итераторы.
как показано ниже:
(Сравните пример 1 ниже с примером 2 ниже того - что «лучше / безопаснее»)?
Пример 1:
public class Person {
/**
* The data stored.
*/
private Integer age;
private Object data;
private String name;
/**
* The data handled (IN THE SAME CLASS)
*/
private static List<Person> persons = new ArrayList<>();
public static void addPerson(Person p){
persons.add(p);
}
public static Person getPerson(int index){
return persons.get(index);
}
}
Versus:
Пример 2: (разделить на 2 класса)
public class Person {
/**
* The data stored.
*/
private Integer age;
private Object data;
private String name;
}
public class PersonDataHandler {
/**
* The data handled (NOT THE SAME CLASS)
*/
private static List<Person> persons = new ArrayList<>();
public static void addPerson(Person p){
persons.add(p);
}
public static Person getPerson(int index){
return persons.get(index);
}
}