有時,人們將設計模式稱爲缺少編程語言功能。爲了避免關於什麼是設計模式的爭論,讓我們假設我們只考慮原始的GoF模式。例如,單例模式在使用關鍵字object
支持單例對象的Scala中消失。作爲(缺少)語言功能的設計模式
關於此問題的資源很少,特別是來自C2 wiki的Are Design Patterns Missing Language Features或來自SO的Are design patterns really language weaknesses?。但我無法找到對這個問題的非客觀,客觀和全面的報道。理想情況下,我想要一個帶有GoF設計模式(行)和一些主流編程語言(列)的矩陣,其中每個單元格都會引用關於特定編程語言中模式的討論。我們也可以解決這個問題並選擇:Java(作爲靜態類型的OO代表),Smalltalk(作爲動態類型代表),Haskell(作爲功能代表),Scala (作爲混合oo /功能代表),Lisp(作爲元編程代表),JavaScript(作爲基於原型的代表)。並留下其他PL的旁註或評論。我知道我們可以爭論這個選擇,但這對於這些語言來說已經很有意思了。
無論如何,這將永遠是一個懸而未決的問題,但我覺得就這樣問,這足夠集中,有一個最佳答案。
也許這個矩陣已經存在的地方?或者有人有足夠的知識來製作它?或者有人足夠敏銳地開始並使其成爲維基答案,以便其他人可以繼續?
而不是在SO上提出一個開放式的主觀問題,你爲什麼不寫一個博客文章,並發現它,因爲你發現一個模式的新實現? – slugster 2010-10-27 01:32:04
這不可能有一個最佳答案。我會投票給社區wiki。 – 2010-10-27 01:33:14
@slugster我的想法確實是撰寫這樣一篇博客文章(或我的一位朋友會這樣做),而問題是收集有關特定模式w.r.t對給定語言的最佳討論的參考。然後我可以將它編譯成博客條目。同時,我可能也會回答我自己的問題,並草擬矩陣的草稿。 – ewernli 2010-10-27 02:05:29