Я читаю или слышу предложения, такие как:
API Java Persistence (JPA) - это прикладное программирование на Java спецификация интерфейса...
или
JavaServer Faces (JSF) - спецификация Java...
но я не уверен, насколько я понимаю, что такое спецификация.
Предположим, что я создаю новую спецификацию JMA, Java Math API, которая является спецификацией Java Math.
Достаточно ли этого, чтобы я определил свою спецификацию следующим образом:
JMA должен предоставить метод, который добавляет два целых числа?
или, мне нужно создать документ примерно так:
JMA должен предоставить метод: int jmaAdd (int x, int y)?
или, нужно ли создавать интерфейсы и распространять исходный код?
public interface JMA{
int jmaAdd(int x,int y);
}
или мне нужно скомпилировать интерфейсы и опубликовать их как jar?
Кроме того, может ли спецификация содержать абстрактные классы или классы вообще? Или он должен состоять только из интерфейсов?
Что делает спецификацию, спецификацию?