首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非面向对象设计模式?

非面向对象设计模式?
EN

Software Engineering用户
提问于 2011-04-12 20:24:16
回答 10查看 13.4K关注 0票数 75

我只听说过用于面向对象代码的术语“设计模式”,GoF模式只包括OOP设计模式,但是对于常见的编程问题,设计模式是优雅的解决方案,对吗?里面没有任何东西说他们必须被限制在OOP,是吗?

我希望看到一些在面向对象编程领域之外的设计模式的例子。你有吗?这种情况是否存在(没有像GoF书那样的书,一定是已经写好了,它们应该只是被使用,这就足够了)?

它们可以是特定于某些编程语言(S),但一般(范式级)模式是首选的其他范式,而不是面向对象的范式。

EN

回答 10

Software Engineering用户

回答已采纳

发布于 2011-04-12 22:27:21

看看系列。这些文章与一种非面向对象的语言(C)有关,我认为它们写得很好:

  • Linux内核设计模式。第1部分
  • Linux内核设计模式-第2部分
  • Linux内核设计模式-第3部分
  • Unix过去的幽灵:对设计模式的历史探索
  • Unix过去的幽灵,第2部分:合并设计
  • Unix过去的幽灵,第3部分:不可修复的设计
  • Unix过去的幽灵,第4部分:高维护设计
票数 27
EN

Software Engineering用户

发布于 2011-04-14 14:47:22

LtU提及杰里米·吉本斯正在写一本关于函数式编程模式的书。看看吉本先生的函数式编程博客的模式,看看几个挑逗者。注:他建议从最老的到最新的阅读他的帖子。

他的论文高阶数据类型的设计模式.通用程序 (pdf)在功能上模拟了四人帮模式:复合模式、迭代器、访问者和生成器。他描述了在折纸编程 (折叠和展开)中使用递归方程进行编程的模式。

票数 11
EN

Software Engineering用户

发布于 2011-04-15 05:21:17

实际上,这是一个悖论-最流行的非OO模式之一是.“阶级”。

由于OO不是在非OO语言中发明的,所以开发人员不得不模拟它(他们甚至现在也在这样做)--所以这种模式就诞生了。LISP和C就是这方面的例子。

但接受我的建议:不要犯常见的错误--不要仅仅因为模式很酷而使用模式,你需要认真的理由来证明使用模式(至少是OO模式)是合理的。

以Command模式为例--尽管它很好&它将调用者与接收者分离开来,但除非您真的需要它,否则不应该使用它--因为操作应该用谓词来表示,这意味着方法。在任何地方使用命令,最终都会得到一堆完全分散的OO ->,许多策略也是如此。

票数 11
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/67594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档