不同的编程语言具有不同的特性或缺少某些特性。设计模式是解决这些缺点的一种方法。我看过关于静态、面向对象语言(Java、C++)的设计模式的书籍和列表,还有关于 Python 设计模式的视频。
我有兴趣看到其他语言(如 Forth、Icon、Lisp 等)中的一些常见设计模式。简短描述它们的外观以及为什么需要它们在一种语言中会很好。也许与另一种无需设计模式即可解决此问题的语言进行简短比较。
不同的编程语言具有不同的特性或缺少某些特性。设计模式是解决这些缺点的一种方法。我看过关于静态、面向对象语言(Java、C++)的设计模式的书籍和列表,还有关于 Python 设计模式的视频。
我有兴趣看到其他语言(如 Forth、Icon、Lisp 等)中的一些常见设计模式。简短描述它们的外观以及为什么需要它们在一种语言中会很好。也许与另一种无需设计模式即可解决此问题的语言进行简短比较。
设计模式有时被称为“惯用语”。在非 OO 语言(C、Forth、COBOL 等)中,它们只是“通常的做事方式”。有时,它们被称为“算法”。每种语言(实际上,每个学科)都有设计解决方案的模式。
如果你已经看到了两三次,你就看到了一个模式。如果你能描述上下文、问题、解决方案和后果,你就已经将模式从模糊的东西提升到了具体和具体的东西。
在非 OO 语言中,模式通常不会被命名和分类。不知道为什么会这样,好像是这样。
在 Lisp 中,您使用的不是设计模式:
我真的不知道设计模式在这种情况下意味着什么。如果设计模式是解决某些类型问题应该遵循的配方,那么它就是编程语言或环境中缺乏特性。计算机可以很好地处理重复性任务,因此必须实现设计模式并使用实际参数调用。
设计模式并不是真的要与任何语言联系在一起。它们是针对常见问题的更通用的解决方案。
C# 和 .Net 中的委托和事件使得实现观察者模式变得微不足道,因为它非常常用,例如处理 GUI 事件。