У меня есть что-то похожее на это:
public class Person {
public String name;
public List<Person> family;
}
List<Person> people;
И я хочу сохранить people в виде строки JSON на диске.И я хочу следовать хорошему шаблону дизайна.Например, делает все правильно .
Я не хочу, чтобы в конечном итоге
[{"name":"John Doe", "family": [{"name": "Mary", "family": [{"name": "Mary's mother", "family": [{.........
Также можно было бы закончить тем, что Мэри тоже будет с Джоном Доу в семье., создавая бесконечную рекурсию.
Я хотел бы закончить с чем-то вроде этого:
[{"name":"John Doe", "family": [(reference to Mary)]}, {"name": "Mary", "family": [(reference to Mary's Mother), (reference to John Doe)]}, ...]
Я не хочу принимать имя уникальный.
Является ли добавление «ID» для Person хорошей реализацией / шаблоном?Потому что в моем классе Человек с идентификатором не имеет смысла (он не имеет / не нужен)
Идея, которую я имею в виду (я думаю, будет хорошим шаблоном дизайна) - это иметьдругой "приватный" класс
private class PersonWithId extends Person {
private int id;
}
и сохраните этот PersonWithId в JSON, чтобы при сохранении списка семейства я мог сохранить идентификатор в качестве ссылки, чтобы не было рекурсии.
Какие параметрыу меня есть?
Спасибо.