片斷

2012-03-19 53 views
5

我想知道是什麼樣的一類片段,並在提升物體片段之間的精確差異。片斷

如果我有

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據說

在這種情況下,該片段是一個單身的對象,因爲它不帶任何參數的構造函數並沒有實例variabled。

那麼這是否意味着對於每個用戶,Bar將會是相同的?

我知道這是一個小白的問題,但是我需要對這個很清楚,我不匹配良好的片段對象和類之間的區別。

回答

8

this page

基本上,富的新實例會爲每個HTTP請求來創建(所以會有很多同時存在的),但只有一個酒吧的實例將同時存在過。

+0

謝謝,這正是我需要的小提示! – 2012-03-19 18:37:21

-2

對象是一個類的實例。在這種情況下,您可以直接定義一個對象。讓我們說C++/Java等你必須先做一個類,然後實例化它。它簡化了當你需要創建一個單例類時,你需要做一些設計模式來處理其他面向對象的語言,而這些語言不支持這個對象結構。

爲了進一步區分這兩個考慮類房子的藍圖和對象的實際房子。

+0

您好,我理解對象和類的概念,它只是,適用於片段和liftweb,我越來越的用戶得到了什麼失去了。 – 2012-03-19 17:24:16

+0

我不確定我關注。假設你粘貼了所有相關的代碼,那就是兩者之間的區別。一個你需要實例化使用,而另一個則不需要。他們會有不同的表現,因爲功能的定義是不同的。但是,每次訪問Bar都會調用相同的代碼。這是一個單身人士。在Foo的兩個不同實例上調用相同的方法也會運行相同的代碼,只能使用不同的「this」引用 – 2012-03-19 17:42:43