«Можно ли просто расширить базовый класс новым методом или есть лучший способ?»
Есть компромиссы в этом решении.Фактически, до недавнего времени Pharo имел String >> asUrl, когда был удален как часть очистки системы .С одной стороны, некоторые считают плохим стилем (см. Лучшие практики Кента Бека) иметь методы преобразования между объектами, которые не имеют схожих протоколов (семантически схожи).Кроме того, это приводит к раздутым базовым классам (таким как String и Object).Тем не менее, в вашем собственном приложении может быть веская причина, которая уравновешивает эти факторы, и, поскольку вы упаковываете его в свое приложение, а не в систему, откажитесь.