Обсуждения, которые я провел сегодня с коллегой.
Он утверждает, что когда вы используете стороннюю библиотеку, вы всегда должны писать для нее обертку. Таким образом, вы всегда можете изменить вещи позже и разместить вещи для вашего конкретного использования.
Я не согласен со словом всегда, дискуссия возникла в отношении log4j, и я утверждал, что log4j имеет хорошо протестированный и проверенный временем API и реализацию, и все мыслимое может быть настроено posteriori, и нет ничего вам следует обернуть. Даже если вы хотите обернуть, есть проверенные обертки, такие как commons-logging и log5j.
Еще один пример, который мы затронули в нашем обсуждении, - Hibernate. Я утверждал, что у него очень большой API-интерфейс для упаковки. Кроме того, он имеет многоуровневый API, который позволяет вам настраивать его внутри, если вам это нужно. Мой друг утверждал, что он по-прежнему полагает, что он должен быть завернут, но он не сделал этого из-за размера API (этот сотрудник намного ветеран, чем я, в нашем текущем проекте).
Я заявлял этот и что обертка должна выполняться в определенных случаях:
- Вы не знаете, как библиотека будет соответствовать вашим потребностям.
- вы будете использовать только небольшую часть библиотеки (в этом случае вы можете выставить только часть своего API).
- вы не уверены в качестве API-интерфейса библиотеки или реализации.
Я также утверждал, что иногда вы можете обернуть свой код вместо библиотеки. Например, добавив код, связанный с базой данных, в слой DAO, вместо того, чтобы превентивно обернуть весь спящий режим.
Ну, в конце концов, это не вопрос, но ваши идеи, впечатления и мнения заслуживают высокой оценки.