У меня есть сторонний объект, который использует метод toString, унаследованный от Java.lang.Object.Этот метод довольно бесполезен.Однако я не могу думать о чистом дизайне, чтобы переопределить это поведение.Ниже представлены различные подходы.
- Подкласс и переопределение метода toString.
Проблема : если какие-либо внутренние вызовы исходного объекта вызывают toString и проверяютвозвращенная строка, они теперь сломаются.Я не хочу ломать существующий объект или предполагать что-либо о чистоте стороннего кода.
Создайте StringFactory с методом createString. Этот метод вызывает toString для всех объектов, кроме моего стороннего объекта, о котором идет речь, но для моего объекта строит строку в моем собственном порядке.
Проблема : я не могу требовать, чтобы все передавалось методу createString и никогда не вызывалось toString напрямую (это было бы нелепо для большой базы кода), и я не мог легко вспомнить, какие объекты должны быть переданы, потому чтодля них есть своя логика.
У кого-нибудь есть шаблон дизайна, который кажется чистым?