Как правильно поделиться интерфейсом? - PullRequest
0 голосов
/ 05 апреля 2019

Что если у меня есть проект, который использует абстракцию ( interface ), но не содержит никакой реализации для этого интерфейса.Поэтому я хочу передать этот интерфейс кому-то, кто может его реализовать, чтобы я (или кто-то еще, кто собирается использовать мое программное обеспечение) смог бы использовать их реализацию моего интерфейса.

Таким образом , у меня следующий вопрос.Как я могу, скажем, поделиться этим интерфейсом ?

Идея, которая пришла мне в голову, состоит в том, чтобы создать JAR, который содержит интерфейс, и передать его тому, кто собирается реализовать этот интерфейс в JAR.,После этого тот, кто реализовал интерфейс, создает свой JAR и отдает его мне.Так что я могу использовать его JAR с реализацией моего интерфейса.Это правильный способ сделать это?

enter image description here

Цель этого состоит в том, чтобы сделать модульную архитектуру так, чтобы, если мне нужна новая игра (согласноприведенный выше пример), я возьму JAR с реализованным интерфейсом и просто подключу его к своему проекту.

1 Ответ

2 голосов
/ 05 апреля 2019

Да.

У вас должен быть общий артефакт сборки (файл JAR), который содержит только интерфейсы, от которых может зависеть ваш проект и реализующий проект.

Возможно, вы захотите взглянуть на такие инструменты, как Maven или Gradle, для помощи в организации процесса сборки с такими зависимостями, как эта. Например, вы можете опубликовать свой JAR API в общем хранилище пакетов, с которым могут работать оба разработчика.

Возможно, вы также захотите взглянуть на java.util.ServiceLoader и шаблон Service Locator, чтобы узнать, какие конкретные реализации у вас есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...