Неполнота библиотечного класса
Также известен как: Incomplete Library Class
Симптомы и признаки
Библиотеки через некоторое время перестают удовлетворять требованиям пользователей. Естественное решение — внести изменения в библиотеку — очень часто оказывается недоступным, так как библиотека закрыта для записи.
![](/images/refactoring/content/smells/incomplete-library-class-01.png?id=ca51f740f7fd39b7de1430b64cae9f8c)
Причины появления
Автор библиотеки не предусмотрел возможности, которые вам нужны, либо отказался их внедрять.
Лечение
-
Если надо добавить пару методов в библиотечный класс, используется введение внешнего метода.
-
Если надо серьёзно поменять поведение класса, используется введение локального расширения.
Выигрыш
- Уменьшает дублирование кода (вместо создания своей библиотеки с нуля, вы используете готовую библиотеку).
![](/images/refactoring/content/smells/incomplete-library-class-02.png?id=05a8d9c631d43a3fb256196f366fd089)
Не стоит трогать, если...
- Расширение библиотеки может стать причиной появления дополнительного объема работы. Это происходит в том случае, когда изменения в библиотеке затрагивают изменения в коде.