Все, что вам нужно для использования этой функциональности, это определение интерфейса.В какой-то момент клиент для вашего фрагмента кода должен передать объект, который реализует этот интерфейс, который вы затем используете.
То, что вам не нужно зависеть от конкретной реализации, обычно хорошо дляРазвязка точки зрения.Вам нужен один для запуска вашего кода и, конечно, его модульного тестирования.Для этого вам может потребоваться создать собственную импровизированную реализацию.
Псевдо-Java-код, как показано ниже (Отказ от ответственности: Java не является моим основным языком)
package com.company.name.yourpackage
class UsesFoo {
// constructor
UsesFoo(FooService giveMeAnImplementationPlease)
{
}
String DoSomethingWithFoo()
{
return anImplementationIWasGiven.getBar()
}
// state
FooService anImplementationIWasGiven;
}
В зависимости от того, чтобиблиотека для этого может быть предназначено, что вы создаете свою собственную реализацию.В этом случае вы можете перевернуть пример и предположить, что в библиотеке есть классы, такие как UsesFoo , которые требуют, чтобы вы предоставили реализацию.
Если использование не понятно, тогда вы должны пожаловаться любомупредоставил библиотеку без достаточной документации.Если по какой-то причине это невозможно, вы также можете рассмотреть возможность добавления к нему сами, чтобы другие не страдали.