Builder на Kotlin c контролем наборов значений при компиляции |
Допустим, у нас есть MediaRecorder. Он должен уметь записывать видео, аудио, или и то и другое. При этом, параметры для видео- и для аудиозаписи, конечно же, отличаются.
Конечно, для решения этой проблемы, можно просто использовать обычный Builder (см. MediaRecorder в Android, там так и сделано), но тогда возникает две проблемы:
Для записи видео требуется указать набор параметров, который становится необязательным, если мы записываем только аудио (и наоборот), и это надо как-то контролировать.
Один параметр может "тянуть" за собой другие. К примеру, если мы укажем noiseReduction = true, то нам следует указать и noiseReductionLevel, либо ни то, ни другое. При реализации "стандартного" Builder такие проверки можно написать, но выполнятся они уже будут при сборке объекта, то есть при выполнении, а хотелось бы, чтобы все параметры проверялись при компиляции.
В этой заметке описан такой сборщик.
https://habr.com/ru/post/673066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=673066
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |