Калитка Apache по сравнению с щелчком Apache

Каково различие между Калиткой Apache и Щелчком Apache? Щелчок Apache сохраняется? Последний выпуск, кажется, с ноября 2008 Спасибо Тысячелистники

18
задан Tim 1 February 2010 в 10:54
поделиться

2 ответа

def find[T](l1 : List[T], c1 : T => Boolean, c2 : T => Boolean) = ((None : Option[(String, T)]) /: l1)( (l, n) => l match {
    case x : Some[_] => l
    case x if c1(n) => Some("c1", n)
    case x if c2(n) => Some("c2", n)
    case _ => None
})

scala> find(l1, c1, c2)
res2: Option[(String, java.lang.String)] = Some((c1,B))

scala> find(l2, c1, c2)
res3: Option[(String, java.lang.String)] = Some((c2,AA))

В зависимости от ваших требований вы можете иметь параметр Map [T = > Boolean, последовательность] для последовательностей метки: def find [T] (l1: List [T], fs: Map [T = > Boolean, последовательность]) или определить собственные операторы.

Будет выполнен анализ всего списка, в котором поиск прекращается для первого найденного элемента.

-121--3147262-

функция, принимающая целое число, которая возвращает функцию, которая принимает целое число и возвращает целое число

Последняя часть этого:

функция, которая принимает целое число и возвращает целое число

, должна быть довольно простой, пример C #:

public int Test(int takesAnInteger) { return 0; }

Итак, остается

функция, принимающая целое число, которая возвращает (функция, подобная описанной выше)

C # еще раз:

public int Test(int takesAnInteger) { return 0; }
public int Test2(int takesAnInteger) { return 1; }

public Func<int,int> Test(int takesAnInteger) {
    if(takesAnInteger == 0) {
        return Test;
    } else {
        return Test2;
    }
}
-121--2422956-

Click активно развивается и недавно получил статус Apache Top Level Project. В настоящее время выполняется переход к новому домену по адресу: http://click.apache.org . После завершения миграции будет выпущена следующая версия 2.1.0.

Прежде чем сравнивать Click и Wicket, обратите внимание, что я занимаюсь в Apache Click, но оценивал Wicket пару лет назад, так что у меня есть довольно хорошее представление о том, как он работает.

Click является рамкой без состояния, в то время как Wicket имеет статус. В Click страницы и компоненты создаются заново для каждого запроса, в Wicket страницы и компоненты сохраняются в сеансе и повторно используются в последующих запросах.

Калитка предназначена для создания сложных приложений (рабочего стола), в которых хранится и управляется все состояние графического интерфейса пользователя. Щелчок предназначен для более традиционного веб- прикладной, где мало или вообще нет состояния, необходимого для рендеринга страницы. Если необходимо сохранить состояние, необходимо управлять им самостоятельно, добавляя/удаляя его из сеанса. Стоит отметить, что Wicket обеспечивает поддержку страниц без состояния и Click поддерживает страницы с состоянием, однако это не является нормой для этих рамок.

Другое отличие заключается в том, что элементы управления Click умеют выполнять рендеринг, поэтому нет необходимости повторять разметку в шаблонах страниц. При необходимости шаблоны можно расположить вручную, но это не обязательно. В Wicket разметка должна отражать компоненты, созданные на странице. Идея в Wicket заключается в том, что разработчик Java фактически не создает и не обслуживает шаблоны, а обрабатывается дизайнером.

относится к

Бобу

41
ответ дан 30 November 2019 в 06:42
поделиться

С калиткой вы используете чистую html и нет языка шаблонов, как скорость или jsp, как это делает щелчок. Это удобно не только для самого программиста, которому необходимо изучить только html и java, но и для инструментов (отладка и т. Д.)

. Это обеспечивает лучшее разделение пользовательского интерфейса и логики. В калитке также не требуется xml, который, по ИМХО, отличается от щелчка.

Еще несколько отличий: трафик списков рассылки wicket выше; по калитке больше публикаций (например, книг), чем по щелчку; есть другие разработчики, пишущие калитку (см. это и это )

2
ответ дан 30 November 2019 в 06:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: