Эквивалентный метод перегрузки зачем нужен?

Я просмотрел код JAVA, созданный Google, и нашел набор ImmutableSet:http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableSet.html

Они реализовали метод of () несколькими другими способами:

public static <E> ImmutableSet<E> of(E e1, E e2);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5);
public static <E> ImmutableSet<E> of(E... elements);

Я проверил реализацию, которая здесь:https://code.google.com/p/google-collections/source/browse/trunk/src/com/google/common/collect/ImmutableSet.java

Есть метод create со следующей подписью:

private static <E> ImmutableSet<E> create(E... elements)

который оборачивает

private static <E> ImmutableSet<E> create(Iterable<? extends E> iterable, int count);

метод. Публичные методы просто передают параметры подписанному методу create (E ... elements), который, наконец, вызывает другой метод create.

Я предполагаю, что публичные методы с фиксированным количеством параметров не нужны, поскольку у нас есть метод of (E ... elements).

Мой вопрос в том, почему они так поступили? Представление? Или это шаблон?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос