我知道與OO Perl我可以有對象和繼承,但接口實現?如果是這樣,他們如何執行?是否有一個與界面相同的OO Perl?
9
A
回答
16
您可以(如果你使用Moose或MooseX::Declare或角色)創建一個純虛類:
但執行將在運行時。一般來說,接口是需要的,因爲該語言不支持多繼承並且是嚴格鍵入的。 Perl支持多重繼承和(使用Moose),就像稱爲角色的多重繼承(但更好),它是動態類型的。嚴格對比動態打字歸結爲鴨子打字(如果它像鴨子一樣呱呱叫,像鴨子一樣走路(),像鴨子一樣游泳(),然後它是一隻鴨子)。在Perl中,你說:
if ($some_obj->can("quack") {
$some_obj->quack;
} else {
croak "incompatible class type: ", ref $some_obj;
}
11
在傳統的Perl OO中,很少執行。你可以使用$ obj-> can('methodname')來選擇你正在使用的類型,但是沒有什麼比接口更好的了。
(但看看駝鹿,在那裏角色可以你以後)。
10
1
接口,因爲語言不支持
接口是一個面向對象的概念。由於技術問題,不需要它們。
相關問題
- 1. 是否有一個Perl界面的Mac OS X默認?
- 2. 我想提供一個Perl的DBI一樣的界面,使用OO
- 3. Perl列表解析是否與Perl中的map/grep相同?
- 4. Perl中的@ {$ list_ref}和@ $ list_ref是否相同?
- 5. 是否有與Windows相同的EDQUOT?
- 6. 是否有與Petapoco相同的Scala?
- 7. 是否有與iPhone SDK相同的CoreText?
- 8. 是否有與Ruby相同的Stylecop?
- 9. Web界面與Qt用戶界面相同
- 10. 是否有一個相當於`perl -pi -e`的Python?
- 11. 是否有與桌面瀏覽器相同的WebView?
- 12. 有沒有一個漂亮的程序演示perl OO?
- 13. C#/ .NET中是否有與Perl的URI.pm相當的功能?
- 14. webapp與CMS - 是否相同
- 15. 是否有與Oracle相當的mysqldump
- 16. 是否有與Ruby ruby koans項目相當的Perl?
- 17. 在一個通用界面中是否有益處?
- 18. LWP與libwww-perl相同嗎?
- 19. 是否有任何與Windows界面漂亮的git bash?
- 20. 是否有可能有兩個不同的Perl版本?
- 21. 是否有一個Java JSON庫使用與XMLEncoder相同的模式
- 22. GoLang是否有CLI(命令行界面)?
- 23. 終止一個對象是否與nulling相同?
- 24. 2個不同依賴項問題中的相同界面
- 25. Octave與iPython的「!」是否相同?
- 26. 是否有一個與real_path相反的PHP函數?
- 27. Perl的映射函數OO perl
- 28. 是否有任何一種非MySQL的文本界面?
- 29. 的Perl OO - 創建對象
- 30. 確定是否有兩個相鄰字符相同的字符
+1對於駝鹿角色。特別是如果你是來自嚴格的OO背景/偏好,它會做你喜歡的。 – 2009-09-02 11:46:18
http://stackoverflow.com/questions/1341903/c-like-usage-of-moose-with-perl-for-oop – draegtun 2009-09-05 19:20:14