1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
10.10 总结.md 4.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

10.10 Заключение

Библиотека Java IO удовлетворяет многие наши базовые требования: чтение и запись через консоль, файлы, блоки памяти и даже интернет (см. главу 15). Можно создавать новые типы объектов ввода/вывода (наследуясь от InputStream и OutputStream). При передаче объекта методу, который ожидал получить строку, автоматическое приведение типов вызывает метод toString(). Мы можем переопределить этот метод toString(), расширяя набор объектов, принимаемых потоками данных.

В процессе создания онлайн-документации и проектирования библиотеки IO остались нерешённые вопросы. Например, при открытии файла для записи можно указать выбрасывать исключение, если кто-то попытается его перезаписать — некоторые системы программирования позволяют нам самостоятельно выбрать режим открытия файла, но с условием, что он ещё не существует. В то время как в Java требуется использовать объект типа File, чтобы проверить существование файла, так как если открыть его как FileOutputStream или FileWriter, он будет обязательно перезаписан. При одновременной спецификации пути к файлу и каталогу выявляется недостаток дизайна класса File, поскольку он говорит «не пытайся делать слишком много вещей в одном классе»!Библиотека IO может запутать нас некоторыми концепциями. Она действительно выполняет множество задач и является портативной. Однако, если до начала работы не понять идею декораторного подхода, все проекты будут иметь некоторую степень слепого использования. Поэтому, будь то обучение или преподавание, следует уделить этому особое внимание. Более того, она не полная: нет поддержки форматированного вывода, хотя почти все другие языки предоставляют эту возможность в своих библиотеках IO (что не было исправлено в Java 1.1, которая полностью упустила возможность изменения архитектуры библиотеки, вместо этого добавив более специализированные случаи, увеличивающие её сложность). Java 1.1 перешла к тем библиотекам IO, которые ещё не были заменены, вместо создания новых. Дизайнеры библиотек также не всегда хорошо указывают, какие характеристики не рекомендуются, а какие являются предпочтительными, что часто вызывает возражения относительно дизайна библиотеки.Однако, когда мы освоили декораторный подход и начали использовать библиотеку в более гибких условиях, мы начинаем ценим преимущества такого подхода. В этом случае дополнительные строки кода, необходимые для реализации этого подхода, должны быть допустимыми.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master