Неповнота бібліотечного класу
Також відомий як: 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)
Не варто чіпати, якщо...
- Розширення бібліотеки може стати причиною появи додаткового обсягу роботи. Це відбувається в тому випадку, коли зміни в бібліотеці пов’язані зі змінами в коді.