动态或基于函数的语言中是否存在任何设计模式

时间:2016-07-17 22:06:55

标签: design-patterns scheme lisp

C ++和Java有很多设计模式可供遵循。 lisp或类似语言的方案是否有类似的概念?

C ++ / Java使用的许多设计模式都与OOP有关。 lisp有CLOS,所以我想我们可以遵循CLOS的C ++设计模式。

但是,在lisp中,我们还可以编写带有函数的代码,并使用动态特性(例如eval)。我们有任何设计模式吗?

1 个答案:

答案 0 :(得分:3)

设计模式或多或少与语言无关,更像是算法。在lisp风格的语言中也有模式,如果它们足够频繁,它们可能需要一个宏来减少样板。

Wikipedia page about design patterns中提到Peter Norvig证明,设计模式书中的23个模式中有16个(主要关注C ++)是简化或被删除(通过Lisp或Dylan中的直接语言支持。

或许reading his paper会更清楚地说明这个问题。