Лучший способ расширить поведение в классе Pharo Smalltalk?

StackOverflow https://stackoverflow.com/questions/4869850

  •  28-10-2019
  •  | 
  •  

Вопрос

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

SmallTalk Daily 13.07.10: расширение поведения II.

Тем не менее, я не могу найти какую -либо опцию «Переместить на упаковку» в Pharo Smalltalk. Можно ли просто расширить класс основного класса с помощью нового метода, или есть лучший способ?

Это было полезно?

Решение

В Pharo или Siveak поставить методы расширения для Mypackage в категории методов называется *mypackage (или если вы хотите быть более описательным *mypackage-slug).

Методы в этих категориях автоматически относятся к Mypackage Пакет (по крайней мере с точки зрения Монтичелло)

Другие советы

«Можно ли просто расширить основной класс с помощью нового метода, или есть лучший способ?»

В этом решении есть компромиссы. Фактически, у Фаро была строка >> asurl до недавнего времени, когда он был удален как часть очистки системы. Анкет С одной стороны, некоторые считаются плохим стилем (см. Лучшие практики Кента Бека), чтобы иметь методы преобразования между объектами, которые не имеют сходных протоколов (семантически похожи). Кроме того, это приводит к раздутым классам основных основных классов (например, строка и объекта). Тем не менее, в вашем собственном приложении может быть веская причина, которая уравновешивает эти факторы, и, поскольку вы упаковываете его с вашим приложением, а не с системой, раскачиваются.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top