Каков наиболее используемый шаблон в java.io?

Меня задали этот вопрос недавно во время моего собеседования, и я не мог ответить на это. Так, каков наиболее используемый шаблон в java.io и как он используется? Что другие шаблоны используются в общих библиотеках Java?

30
задан Ravindra babu 3 June 2016 в 08:47
поделиться

4 ответа

Думаю, они хотели услышать о шаблоне декоратора , который можно найти в различных потоках, средствах чтения и записи.

Другие шаблоны (небольшой выбор):

Я почти уверен, что можно найти примеры почти для всех шаблонов, перечисленных на этой странице википедии в Java SDK.

24
ответ дан 27 November 2019 в 23:32
поделиться

BufferedReader и т. Д. Реализует шаблон декоратора . Любой Читатель , например FileReader или StringReader , могут быть украшены функцией буферизации, которая действительно не учитывает источник.


Другие шаблоны


Анти-шаблоны

В дополнение к сказанному другими, это несколько анти-шаблонов. -шаблоны в библиотеках Java:

Антипаттерн: наследование вместо композиции

Из Эффективное 2-е издание Java, пункт 16: Предпочтение композиции перед наследованием :

Существует ряд очевидные нарушения этого принципа в библиотеках платформы Java. Например, стек не является вектором, поэтому Стек не должен расширять Вектор . Точно так же список свойств не является хеш-таблицей, поэтому Properties не должны расширять Hashtable . В обоих случаях композиция была бы предпочтительнее.

Связанные вопросы


Антипаттерн: константные интерфейсы

Из Эффективное 2-е издание Java, элемент 19: Используйте интерфейсы только для определения types :

В библиотеках платформы Java есть несколько постоянных интерфейсов, таких как java.io.ObjectStreamConstants . Эти интерфейсы следует рассматривать как аномалии, и их не следует эмулировать.

Связанные вопросы


Антипаттерн: телескопический конструктор и шаблоны JavaBeans

Из Эффективно Java 2nd Edition, Item 2: Рассмотрите конструктор, когда сталкиваетесь со многими параметрами конструктора ( отрывок в Интернете ):

Традиционно программисты использовали шаблон телескопический конструктор в в котором вы предоставляете конструктор только с обязательными параметрами, другой - с одним необязательным параметром, третий - с двумя необязательными параметрами и т. д. [...] Шаблон телескопического конструктора работает, но трудно написать клиентский код, когда есть много параметров, и еще сложнее его написать.

Второй альтернативой, когда вы сталкиваетесь со многими параметрами конструктора, является шаблон JavaBeans , в котором вы вызываете конструктор без параметров для создания объекта, а затем вызываете методы установки для установки каждого необходимого параметра и каждого необязательный интересующий параметр. [...] К сожалению, шаблон JavaBeans сам по себе имеет серьезные недостатки, [...] JavaBean может находиться в несогласованном состоянии на этапе построения [и это] исключает возможность сделать класс неизменяемым.

Блох рекомендует вместо этого использовать шаблон построения .

Связанные вопросы

31
ответ дан 27 November 2019 в 23:32
поделиться

Шаблон декоратора часто используется в java i/o.

Example

BufferedReader br = new BufferedReader(new FileReader("filename.txt")); 
8
ответ дан 27 November 2019 в 23:32
поделиться

Шаблон декоратора, я думаю. Для создания всех видов Читателей, Писателей, входных и выходных потоков. Смотрите, например, this.

4
ответ дан 27 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: