Вам не нужно заставлять VmSupplier возвращать список виртуальных машин.Если вам нужно создать более одной виртуальной машины, вы просто должны убедиться, что метод isVmOverloaded в упомянутом примере содержит условие, которое останется истинным после вызова в разное время.
Если в это время виртуальная машинапроверив, что он все еще перегружен, объект HorizontalVmScaling снова вызовет функцию VmSupplier для создания новой виртуальной машины.Таким образом вы создаете несколько виртуальных машин для балансировки нагрузки.