C ++和Java有很多设计模式可供遵循。 lisp或类似语言的方案是否有类似的概念?
C ++ / Java使用的许多设计模式都与OOP有关。 lisp有CLOS,所以我想我们可以遵循CLOS的C ++设计模式。
但是,在lisp中,我们还可以编写带有函数的代码,并使用动态特性(例如eval)。我们有任何设计模式吗?
答案 0 :(得分:3)
设计模式或多或少与语言无关,更像是算法。在lisp风格的语言中也有模式,如果它们足够频繁,它们可能需要一个宏来减少样板。
在Wikipedia page about design patterns中提到Peter Norvig证明,设计模式书中的23个模式中有16个(主要关注C ++)是简化或被删除(通过Lisp或Dylan中的直接语言支持。
或许reading his paper会更清楚地说明这个问题。