Должен ли я написать метод toJson или fromJson в классе данных Kotlin? - PullRequest
0 голосов
/ 13 февраля 2019

Упоминается, что класс данных Kotlin предназначен для хранения данных.Это эквивалентно структуре данных.Как таковой, он не должен иметь никакого метода поведения.В чистом коде реализация метода поведения в классе данных нарушила бы многие принципы, а именно, SRP, OCP, ...

Мне было интересно, рассматриваются ли методы fromJson и toJson как метод поведения.Если это так, то где я должен реализовать эти методы в своем коде?

Я использую класс данных Kotlin для хранения User, Product и т. Д. В своей якобы чистой архитектуре и чистом коде, который я изучаю, яограничил эти классы данных углом для хранения только данных домена.

Я пытался найти информацию об этом, но я не могу найти никого, кто бы говорил о классе данных и этих методах.

Воткод, который я представил.Должно быть что-то вроде этого.

data class User(val id: String, val name: String) {
    fun toJson(): Json {}
    fun fromJson(json: Json): User {}
}

Или я должен иметь другой класс, отвечающий за реализацию toJson и fromJson?

1 Ответ

0 голосов
/ 23 февраля 2019

Поскольку вы пометили свой запрос чистой архитектурой, я предполагаю, что вы ссылаетесь на https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html.

С этой точки зрения «сущность домена» должна быть независимой от любого вида формата сериализации, аспектов персистентности или других конкретных »технология "или" framework ".

Распространенным шаблоном для обработки" невежественности постоянства "для доменных объектов является шаблон репозитория.Важный аспект, который следует иметь в виду в контексте чистой архитектуры, заключается в том, что интерфейс репозитория определен на «уровне варианта использования» (бизнес-логика), а реализация находится на «уровне шлюза» или даже «уровне структуры».

...