我只听说过用于面向对象代码的术语“设计模式”,GoF模式只包括OOP设计模式,但是对于常见的编程问题,设计模式是优雅的解决方案,对吗?里面没有任何东西说他们必须被限制在OOP,是吗?
我希望看到一些在面向对象编程领域之外的设计模式的例子。你有吗?这种情况是否存在(没有像GoF书那样的书,一定是已经写好了,它们应该只是被使用,这就足够了)?
它们可以是特定于某些编程语言(S),但一般(范式级)模式是首选的其他范式,而不是面向对象的范式。
发布于 2011-04-12 22:27:21
看看系列。这些文章与一种非面向对象的语言(C)有关,我认为它们写得很好:
发布于 2011-04-14 14:47:22
LtU提及,杰里米·吉本斯正在写一本关于函数式编程模式的书。看看吉本先生的函数式编程博客的模式,看看几个挑逗者。注:他建议从最老的到最新的阅读他的帖子。
他的论文高阶数据类型的设计模式.通用程序 (pdf)在功能上模拟了四人帮模式:复合模式、迭代器、访问者和生成器。他描述了在折纸编程 (折叠和展开)中使用递归方程进行编程的模式。
发布于 2011-04-15 05:21:17
实际上,这是一个悖论-最流行的非OO模式之一是.“阶级”。
由于OO不是在非OO语言中发明的,所以开发人员不得不模拟它(他们甚至现在也在这样做)--所以这种模式就诞生了。LISP和C就是这方面的例子。
但接受我的建议:不要犯常见的错误--不要仅仅因为模式很酷而使用模式,你需要认真的理由来证明使用模式(至少是OO模式)是合理的。
以Command模式为例--尽管它很好&它将调用者与接收者分离开来,但除非您真的需要它,否则不应该使用它--因为操作应该用谓词来表示,这意味着方法。在任何地方使用命令,最终都会得到一堆完全分散的OO ->,许多策略也是如此。
https://softwareengineering.stackexchange.com/questions/67594
复制相似问题