Принцип эквивалентности повторного использования / выпуска (REP) гласит:
Единица повторного использования - это единица выпуска. Эффективное повторное использование требует отслеживания выпусков из системы контроля изменений. Пакет является эффективной единицей повторного использования и выпуска.
Единицей повторного использования является единица выпуска
Код нельзя использовать повторно, скопировав его из одного класса и вставив в другой. Если первоначальный автор исправит какие-либо ошибки в коде или добавит какие-либо функции, вы не получите автоматическое преимущество. Вы должны будете узнать, что изменилось, а затем изменить свою копию. Ваш код и исходный код будут постепенно расходиться.
Вместо этого код следует повторно использовать, включив в него освобожденную библиотеку. Первоначальный автор сохраняет ответственность за его сохранение; вам даже не нужно видеть исходный код.
Эффективное повторное использование требует отслеживания выпусков из системы управления изменениями
Автору библиотеки необходимо идентифицировать выпуски с номерами или названиями. Это позволяет пользователям библиотеки идентифицировать разные версии. Это требует использования какой-либо системы отслеживания релизов.
Пакет является эффективной единицей повторного использования и выпуска
Может быть возможно использовать класс в качестве единицы повторного использования и выпуска, однако в типичном приложении существует так много классов, что системе отслеживания релизов было бы обременительно отслеживать их все. Требуется более масштабный объект, и пакет хорошо соответствует этому требованию.
См. Также статью Роберта Мартина о Гранулярность .