@veritasvino

Схожие структуры с разными типами данных, как избежать дублирования кода?

Есть несколько схожих структур, свойства структур отличаются типами. Например, запись разных объектов в json (просто как пример).

type PersonWriter struct {
	channel chan *Person
	jw      *JsonWriter
}
type OrganizationWriter struct {
	channel chan *Organization
	jw      *JsonWriter
}

Структура читает объекты из канала и передает их в JsonWriter (разный экземпляр в каждой структуре - в разные файлы пишет), который принимает для записи interface{} и пишет уже на основе тегов структур. Из-за того, что JsonWriter принимает любые структуры, остальные методы у PersonWriter и OrganizationWriter по сути отличаются только типами полей, вся логика одинаковая.
Таких структур может быть несколько - десяток, например. Очень не хочется дублировать код из-за различий в типах каналов. Как можно избежать дублирования кода без использования?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@deliro
type PersonWriter[T any] struct {
  channel chan T
  jw      *JsonWriter
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы