Почему метод чтения / чтения Sink от okio использует метод Buffer?
Я читал определения интерфейса для Окио, и я пытаюсь понять, как Sink
, Source
, а также Buffer
все связаны. Sink
определяет запись как fun write(buffer: Buffer)
а также Source
определяет читать как fun read(buffer: Buffer)
(Я опускаю некоторые определения функций для краткости)
Я пытаюсь понять, почему Sink не определяет write как fun write(sink: Sink)
Аналогично для источника. Я вижу, что Buffer реализует оба, но зачем использовать Buffer
в обоих местах? Было ли это, чтобы упростить другие Sink
/Source
реализации, позволяя им иметь доступ к удобным методам, которые предоставляет Buffer?