Каковы основные различия между EnhancedPatternLayout и PatternLayout? - PullRequest
6 голосов
/ 28 февраля 2012

Проверяя javadoc для PatternLayout, я заметил, что он рекомендует вместо этого использовать EnhancedPatternLayout.Тем не менее, похоже, что он делает одно и то же.

Каковы основные различия, особенно те, о которых мне нужно знать?

Мне также интересно, почему они сделали отдельныйкласс, а не повышение исходного класса.Есть ли синтаксические различия?

Ответы [ 3 ]

2 голосов
/ 30 октября 2016

Основное различие между PatternLayout и EnhancedPatternLayout заключается в методе format ().PatternLayout использует поле члена с именем sbuf, которое он изменяет, тогда как EnhancedPatternLayout использует закрытый экземпляр StringBuffer.Это означает, что вызовы PatternLayout.format () подвержены гонкам данных во время одновременных вызовов, в то время как параллельные вызовы EnhancedPatternLayout.format () не являются.

2 голосов
/ 28 февраля 2012

Проверьте документацию , все объяснено. EnhancedPatternLayout является расширенной версией PatternLayout. Его следует использовать вместо PatternLayout (кроме случаев совместимости с PatternLayout).

PatternLayout содержит некоторые проблемы, которых нет в EnhancedPatternLayout, особенно при синхронизации.

0 голосов
/ 12 марта 2014

EnhancedPatternLayout форматирует результат как StringBuffer, тогда как PatternLayout форматирует результат как String.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...