2008-12-10 51 views
1

我以前問過Mixin是什麼,並且已經開始瞭解這種模式的含義。但它讓我想知道是否有一個共同的模式名稱用於像對象級別的Mixins那樣做,而不是Class級別。你稱之爲Mixin/Traits系統的對象級別相當於什麼,有沒有一個Pattern名稱?

僞代碼(在一些不存在的語言):

Class MyClass 
    { 
    function foo() 
    { 
     print("foo") 
    } 
    } 

    function bar() 
    { 
    print("bar") 
    } 

    object = MyClass.new() 
    object.xxxx(bar) 

    object.bar() #output: bar 

我知道這樣的東西可以用幾種語言來實現,以這種或那種方式,但我想知道什麼是「標準「xxxx功能的名稱表示該模式的名稱,如果有的話。

謝謝!

編輯:擴大對finnsson的答案,我想這樣的事情可能是這樣做的另一個情況是:

object.xxxx(OtherClass) 
object.otherfoo() 

串聯會是適當的?

報價:「連接:在純粹的原型,它也被稱爲拼接原型......」 -wikipedia

回答

1

這是常見的基於原型的編程語言。我相信它在ruby中被稱爲「import」,但是自從我上次編程ruby以來,我還有一段時間,所以我不確定。

在JS/Ruby中,你會寫

object.bar = bar; 
object.bar() // output: bar 

和比它沒有真正的模式,因爲它只是在一個基於原型的語言製作完美意義上的賦值(o.bar =欄)。我想你的例子中的xxxx可以稱爲原型或類似的東西(參見http://en.wikipedia.org/wiki/Prototype-based_programming,其中一種語言稱爲原型)。

相關問題