У LISP OOP (а именно CLOS), на которую многие языки равняются. Она позволяет легко делать многие ОО вещи элементарно, которые в других языках делается уже на уровне алгоритмов, паттернов итд.
Я признаю, что моя реализация проверки (в первом примере) туповата. Это случилось потому что это был пример, а не реальный код.
Но вариант с классами — это засирание кодом и усложнение структуры. Очевидно, что людям разобраться и найти нужное будет намного сложнее. Создавать новый класс для каждой проверки? Создать один класс, который будет делать все проверки, который нужно искать по названию?
Делать конечно нужно всё по уму, но первый пример смотрится и помещается в голове у программиста намного лучше. Для этого и созданы замыкания.
Второй пример необходим только в случае частого использования.
Причин две:
1) Статья совершенно не про «Замыкания в PHP»… Об этом хотябы говорит ваша фраза «Зачем нужны замыкания в PHP я понимаю слабо».
2) По поводу замыканий JS — полно статей на Хабре. Я негодую — что нового в этой статье?
Аннонимные функции у меня во FW используются так:
getElementObject('Form')
->onValidate(function($fields){
//проверки
})
->onSubmit(function($fields){
//что делаем, если порядок
})
->onError(function($fields){
//что делаем, если всё плохо
});
getElementObject('Form')
->onValidate(function($fields) use ($login){
$newLogin = $fields->getElementObject('.name')->getValue();
//Проверяем, что пользователь ввел не сам себя
return $login != $newLogin;
});
… Я тут посчитал — ещё в прошлом году нормальных людей было 90%, за один год нац меньшинства выросли на 50% — это означает, что через 2 года будут в мире только одни нац меньшинства! Это какраз будет 2012й — это майя предсказывали! (С) Эрик Картман
Изначально фильм был длительностью 3ч 23м. Но из настоящего фильма было вырезан 1ч 07м, оставив только боевик. Совсем не странно, что этот фильм вызвал столько споров — множество моментов было упущено из-за цензуры.
У LISP OOP (а именно CLOS), на которую многие языки равняются. Она позволяет легко делать многие ОО вещи элементарно, которые в других языках делается уже на уровне алгоритмов, паттернов итд.
Но вариант с классами — это засирание кодом и усложнение структуры. Очевидно, что людям разобраться и найти нужное будет намного сложнее. Создавать новый класс для каждой проверки? Создать один класс, который будет делать все проверки, который нужно искать по названию?
Делать конечно нужно всё по уму, но первый пример смотрится и помещается в голове у программиста намного лучше. Для этого и созданы замыкания.
Второй пример необходим только в случае частого использования.
Объясните, как по вашему поступить элегантно?
Причин две:
1) Статья совершенно не про «Замыкания в PHP»… Об этом хотябы говорит ваша фраза «Зачем нужны замыкания в PHP я понимаю слабо».
2) По поводу замыканий JS — полно статей на Хабре. Я негодую — что нового в этой статье?
Аннонимные функции у меня во FW используются так:
Замыкания так:
Смысл этого в том, чтобы определять $login не внутри Validate функции.
Например, проставить метки и дату отлично впишется во второй шаг.
Смысл в том, что после написания текста — уже отчетливо понимаешь, какие метки для него можно использовать. В общем, не отвлекает.
А автор, пишущий о юзабилити, из одного говна сделал другое. :)