我想知道一个类片段与电梯中的对象片段之间的确切区别。
如果我有
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
有不同的行为。
在simply lift,据说
在这种情况下,代码段是一个对象单例,因为它不接受任何构造函数参数,并且没有实例变量。
这是否意味着对于每个用户,Bar
都是一样的?
我知道这是一个noob问题,但我需要非常清楚这一点,我不能很好地匹配片段中对象和类之间的差异。
答案 0 :(得分:8)
请参阅this page。
基本上,将为每个http请求创建一个新的Foo实例(因此会有许多同时存在),但只有一个Bar实例会同时存在。
答案 1 :(得分:-2)
对象是类的实例。在这种情况下,您可以直接定义一个对象。在C ++ / Java等中,您必须首先创建一个类,然后实例化它。它简化了,即当你需要创建一个单例类时,你需要做一些设计模式来处理不支持对象构造的其他面向对象语言。
为了进一步区分这两者,考虑一下房子的蓝图和实际房屋的对象。