类片段和对象片段之间的区别

时间:2012-03-19 17:17:24

标签: class scala object 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>
  }
}

它们之间的具体区别是,ab有不同的行为。 在simply lift,据说

  

在这种情况下,代码段是一个对象单例,因为它不接受任何构造函数参数,并且没有实例变量。

这是否意味着对于每个用户,Bar都是一样的?

我知道这是一个noob问题,但我需要非常清楚这一点,我不能很好地匹配片段中对象和类之间的差异。

2 个答案:

答案 0 :(得分:8)

请参阅this page

基本上,将为每个http请求创建一个新的Foo实例(因此会有许多同时存在),但只有一个Bar实例会同时存在。

答案 1 :(得分:-2)

对象是类的实例。在这种情况下,您可以直接定义一个对象。在C ++ / Java等中,您必须首先创建一个类,然后实例化它。它简化了,即当你需要创建一个单例类时,你需要做一些设计模式来处理不支持对象构造的其他面向对象语言。

为了进一步区分这两者,考虑一下房子的蓝图和实际房屋的对象。