Очень простое решение:
$('.my-slider').slick({
infinite: false });
.slick-disabled {
display: none;
pointer-events:none;
}
, и это все.
Шаблон специального случая или шаблон нулевого объекта используется для единообразного рассмотрения всех случаев. Это освобождает клиентский код от нескольких путей выполнения.
В приведенном вами примере особый случай должен рассматриваться по-разному, потому что итерация должна быть остановлена при обнаружении определенного значения (null
в этом случае). Вы не можете применить решение для проблемы X для решения проблемы Y, особенно когда обе проблемы полностью противоположны.
Предположительно, break
должен предотвратить NullPointerException
, потому что конец коллекции был достигнут. Если целью является фильтрация коллекции, более подходящая конструкция (такая как Predicate
) будет оправданной (и более читаемой).
На высоком уровне вы заметили, что для переноса небольшой ОО-конструкции в пакет процедурного кода может потребоваться переосмысление предыдущей конструкции. Это часто правда. Если null
используется в качестве точки останова в середине коллекции, возникает более сложная проблема проектирования перед реализацией шаблона нулевого объекта.
Хотя это все еще может быть хорошим сценарием для шаблона нулевого объекта (после рефакторинга цикла), шаблон не применим к каждому сценарию, в котором используется null
. К сожалению, не все так просто. Optional
является еще одним популярным решением, и есть еще.