Closed SergeyUsok closed 9 years ago
Немного странно, что нам не подходит Stream, но подходит IRawLogEntryStream, пусть это и самописный интерфейс. Кроме того, название Stream уже сразу говорит нам о том, откуда данные, то есть это фактически теже проблемы, что и с названием IFileReader. Может сделать интерфейс IRawLogEntryReader или IRawLogEntryProvider или просто IReader?
Ну, нам не подходит встроенный стрим, но мы хотим использовать интерфейс. Тогда создаем свой, но называем его так, чтобы в его имени не было реализации.
IStream - это более абстрактное понятие, по сравнению с IFile, поскольку первый говорит о любом потоке ввода/вывода, включая файлы, а второй - лишь о файлах. При этом я не хочу вводить еще один ридер. Если я бы абстрагировался самостоятельно от источника. то вводил бы именно специализированный стрим, заточенный под мои конкретные нужды, а уже ридер его бы использвал. Аналогично тому, как это сделано в потоках ввода/вывода в .NET - стримы - отдельно, ридеры/райтеры - отдельно.
зачем мы провайдим парсеру имя файла, если у нас уже есть файл ридер?
Там я даю ссылку, что класс LogEntryParser.Create был рассмотрен в предыдущей главе. Там используется имя файла, чтобы понять, какой конкретно парсер используется.
содержать лишь код, приведенный в листинге 6.7
Там же полная фраза такая: Если класс LogImporter
будет содержать лишь код, приведенный в листинге 6.7
И речь в ней идет о реализации класса LogImpoerter который рассмотрен именно в листинге 6.7.
пропустил слово "зависимость"
выводА
Немного странно, что нам не подходит Stream, но подходит IRawLogEntryStream, пусть это и самописный интерфейс. Кроме того, название Stream уже сразу говорит нам о том, откуда данные, то есть это фактически теже проблемы, что и с названием IFileReader. Может сделать интерфейс IRawLogEntryReader или IRawLogEntryProvider или просто IReader?
Поведение
зачем мы провайдим парсеру имя файла, если у нас уже есть файл ридер?
клиентОВ
здесь наверное имелся в виду листинг 6.6
разделениЯ