Создание API в Java в первый раз

Мне была поручена разработка списка API, который будет использоваться графическим интерфейсом, который я должен разработать, для связи с внешним приложением. Учитывая, что приложение только что было разработано, и у меня есть его начальная диаграмма классов, я должен:

1- Просто перечислите поля и методы из этой диаграммы классов приложений, которые потребуются графическому интерфейсу для связи с приложением

или

2- Создайте список совершенно новых полей и методов, необходимых графическому интерфейсу для связи с приложением, которое разработчик приложения должен создать

Спасибо заранее!

Ответы

Ответ 1

"Просто перечислите поля и методы из этой диаграммы классов приложений, которые потребуются графическому интерфейсу для связи с приложением"

Это работает очень хорошо.

После этого попробуйте написать документацию - с подробными примерами. Если ваша документация трудно писать, запутывать или хромать, тогда вам нужно исправить API для добавления функций.

Затем покажите это другим людям.

Если люди путаются или жалуются, вам может потребоваться добавить дополнительные функции в API.

Пока люди на самом деле путаются или на самом деле жалуются, не делайте ничего большего, чем минимум.

Ответ 2

Один из лучших руководств по дизайну API, который я прочитал, - "" Маленькое руководство по дизайну API" (PDF), в котором есть некоторые отличное, нейтральное по платформе руководство относительно того, как создать API для приложения или службы. Некоторые из наиболее важных рекомендаций, которые он дает, это:

  • создавать примеры использования перед началом кодирования самого API;
  • получить экспертную оценку дизайна API перед его кодом;
  • пишите примеры против API, чтобы проверить его надежность.

Первый совет - лучший, ИМХО; он не позволяет вам кодировать API, который предоставляет мир, когда требуется все ваши применения, - это небольшая часть этого мира. Это также заставляет вас придумывать, как он будет использоваться, и принимать проектные решения на основе этих целей, а не абстрактно.

Ответ 3

Я бы указал интерфейс. Это отделяет графический интерфейс и приложения.

GUI будет использовать только интерфейс (за исключением одного вызова метода factory, который возвращает конкретный объект), и API реализует интерфейс. Например, ни один из имен классов приложения не известен графическому интерфейсу. Это приводит к стабильному дизайну, который наиболее подходит для будущей эволюции.

Кроме того, интерфейс служит хорошей документацией для полного API.

Ответ 4

Я бы сделал API (semi-) независимым от реализации GUI, потому что позже вы могли бы захотеть создать другой интерфейс для одного и того же приложения или просто изменить графический интерфейс, а затем застрять вы создали для первого прохода вашего первого графического интерфейса.

Кроме того, я настоятельно рекомендую взглянуть на Джош Блох расскажет о дизайне API. Блох - это парень, который разработал API коллекций Java.