c - C(或一般过程编程)的设计原则、最佳实践和设计模式?

标签 c design-patterns principles

<分区>

在设计 C 项目时,是否可以遵循任何已知的设计原则、最佳实践和设计模式?还是一般过程式(命令式)编程的有用设计原则?

(我是“面向对象一代”的 child ,第一次设计大型C 项目)

最佳答案

信息隐藏 - 正如 Parnas (Software Fundamentals) 所倡导的那样。

仔细管理 header 和可见性:

  • 源文件中所有可以对外界隐藏的东西都应该是;仅应公开记录的外部接口(interface)。
  • 公开的所有内容都在 header 中声明。
  • 该 header 用于需要功能的地方(以及定义它的地方)。
  • header 是独立的 - 当您需要它时,您就可以使用它,并且您不必担心“我还必须包含哪些其他 header ”,因为 header 通过包含它需要的任何东西来确保它的工作让它发挥作用。
  • header 是 self 保护的 - 因此它是否被包含多次无关紧要。

    #ifndef HEADER_H_INCLUDED
    #define HEADER_H_INCLUDED
    ...rest of header contents, including other #include lines if necessary
    #endif /* HEADER_H_INCLUDED */
    
  • 设计函数集以处理“对象”(通常是结构)- 并使用这些函数,而不是在使用它的代码中探索结构的内部结构。将其视为 self 强加的封装。

关于c - C(或一般过程编程)的设计原则、最佳实践和设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492446/

相关文章:

php - PHP 类的 Apache2 模块

c - 如何将全局可用的二维数组转换为 malloc 数组(可以作为参数传递)

events - 观察者模式和事件驱动方法之间的区别

c++ - 单例:应该如何使用

java - Java 中的引用计数

C中的条件编译用于获取一个函数的不同版本

c++ - 预处理的 C/C++ 文件是否特定于机器?

oop - 设计原则

web-services - REST 最佳实践 : Should you return an entity on POST and PUT calls?