在計算機程序設計中,mixin是一個由另一個類繼承的類,但它并不打算被實例化。一個類可以繼承多個mixin,因此可以很容易地合并許多函數集合。盡管許多常用編程語言都使用mixin方法,但還有更多的語言沒有使用mixin方法,包括C...
在計算機程序設計中,mixin是一個由另一個類繼承的類,但它并不打算被實例化。一個類可以繼承多個mixin,因此可以很容易地合并許多函數集合。盡管許多常用編程語言都使用mixin方法,但還有更多的語言沒有使用mixin方法,包括C和Java。一般來說,mixin存在于腳本語言或那些能夠創建腳本的語言中,比如JavaScript和Perl。女人用計算機倒立mixin是獨特的,因為它們在編譯過程中成為子類的一部分。它們的方法和常量包含在子類中。mixin類的另一個獨特特點是可以在運行時定義方法并將其綁定到對象上。大多數語言使用不同的方法、綁定和定義方法是在編譯時而不是在運行時。這種運行時綁定允許mixin非常靈活。多重繼承中的一個常見問題是方法調用的模糊性,mixin可以解決這個問題,因為它們不遵循與多重繼承完全相同的規則。例如,多重繼承可以創建一個所謂的“死亡鉆石”,其中父類a有子類B和C,而類D繼承自類B和C。這種情況下的問題是,類a、B和C中同名的方法都可以繼承到類D中,使同一方法的多個版本沒有明顯的區別。mixin通過保持方法的每個版本不同而解決了這個問題,而不是像在標準多重繼承中那樣試圖覆蓋它們。mixin不會重寫繼承到的類中的方法例如,如果一個類a定義了一個方法“myMethod”,并且繼承了一個定義了方法“myMethod”的mixin B,那么這兩個方法仍然可以毫無歧義地被調用,而“myMethod”在類A中的實現仍然是完全可訪問的,這些方法的調用方式取決于實現mixin的語言,使用接口來模擬它們。這些語言中的接口不能模擬mixin的全部功能,因為接口只能包含常量和方法聲明。另一方面,mixin可以包含方法的完整實現。那些不支持mixin的語言通常都有可行的替代方案,可以加以哄騙做同樣的事情
-
發表于 2020-08-06 20:15
- 閱讀 ( 830 )
- 分類:電腦網絡