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