Разница между фрагментом класса и фрагментом объекта - PullRequest
5 голосов
/ 19 марта 2012

Я хотел бы знать, какова точная разница между фрагментом класса и фрагментом объекта в lift.

Если у меня есть

class Foo {
  var a: String
  def render(n:NodeSeq) = {
    <h3> you chose {a} </h3>
  }
}

и

object Bar {
  var b: String
  def render(n:NodeSeq) = {
    <h3> you chose {b} </h3>
  }
}

Какова конкретная разница между ними, a и b ведут себя по-разному.В просто поднимите , говорится, что

В этом случае фрагмент является одноэлементным объектом, поскольку он не принимает никаких параметров конструктора и не имеет экземпляра variabled.

Значит ли это, что для каждого пользователя Bar будет одинаковым?

Я знаю, что это вопрос нуба, однако мне нужно быть очень ясным по этому вопросу, и я нене соответствует разнице между объектами и классами во фрагментах.

Ответы [ 2 ]

8 голосов
/ 19 марта 2012

См. эту страницу .

По сути, для каждого http-запроса будет создаваться новый экземпляр Foo (поэтому будет много существующих одновременно), но только один экземплярБар будет существовать одновременно.

0 голосов
/ 19 марта 2012

Объект является экземпляром класса. В этом случае вы можете сразу определить объект. Например, C ++ / Java и т. Д. Сначала нужно создать класс, а затем создать его экземпляр. Это упрощает, т. Е. Когда вам нужно создать одноэлементный класс, для которого вам потребуется создать какой-то шаблон проектирования для обработки в других объектно-ориентированных языках, которые не поддерживают конструкцию объекта.

Чтобы еще больше разграничить эти два, рассмотрим класс как план дома, а объект - как реальный дом.

...