参考ANSI C中的设计模式?

你能指点我参考标准C(C89或C99)中的设计模式吗? (不是C#,不是C ++。)

看看Axel-Tobias Schreiner的电子书面向对象编程与ANSI-C 。 您将不得不处理某些模式的某些方面,但您将能够实现许多更简单的GoF方法。

设计模式应该与语言无关 – 不幸的是,大多数设计模式都假定面向对象的环境。

挣扎来自面向对象的土地?

根据Nick的回答,我建议您学习如何使用C实现类似cplusplus的东西(例如,带有指向函数指针表的指针的C结构,用虚函数模拟C ++类),这意味着理解C ++是如何实现的由编译器实现。 完成此操作后,您将能够阅读C ++的设计模式并使用C实现它们。

如果您需要有关实时嵌入式C设计模式的信息,我可以推荐这两本书

  • “实时设计模式:实时系统的可靠可扩展架构”(Douglass,Bruce Powel | Elsevier |第1版| 2002)和
  • “C语言中的嵌入式系统设计模式:嵌入式软件工程工具包”(Douglass,Bruce Powel | Elsevier |第1版| 2011)

一些较高级别的模式依赖于前面提到的面向对象特征的“仿真”。 模式描述得很好(UML图,示例)。 我喜欢在应用模式后影响环境的“力量”(必须考虑什么?)的讨论。