我打算用C开发一个应用程序。我的编程经验一直是面向对象的语言。因此,在设计应用程序时,我总是考虑类,接口,继承,多态等。
我看过的所有C书都涉及如何使用C编程或专注于某个特定主题,我在C中找不到任何关于应用程序架构的讨论。那么如何在C语言中构建C语言应用程序OOP功能不可用?你如何保持一切模块化和组织良好,避免代码重复(没有OOP似乎会有很多代码重复)?
修改 我不是在寻找'如何在C中编写OOP代码'的答案。我正在寻找构建C应用程序的标准实践方法,因此它们是模块化的,组织良好。如果标准的练习方法是破解一些OOP功能那么这是公平的,但如果不是那么那么就没有必要告诉我沿着那条路走下去。
答案 0 :(得分:6)
这是一种不同的思维方式。 C的核心理念可归纳为:
data + algorithms = programs
所以要用C:
设计一个应用程序您需要仔细考虑数据是什么,并定义反映良好的struct
,并促进不同数据视图之间的关系。
您需要考虑什么样的算法将对哪些数据及其产生的数据进行操作。这有助于澄清您应该拥有的struct
,并帮助显示应该一起阻止的内容以创建可重复使用的代码块。
从OOP方法转向这种方法的一种方法是想象一个struct
+一个.c文件=一个类,并在.h文件中放入结构定义和外部可访问的功能(公共方法)。
你必须编写很多代码来做无聊的事情,比如内存分配和释放以及所有的爵士乐。它并没有听起来那么糟糕,而是将其纳入您的设计中。
答案 1 :(得分:4)
答案 2 :(得分:2)
另外,要创建可重复使用的C软件,请阅读David R. Hanson撰写的这本书
https://sites.google.com/site/cinterfacesimplementations/
基本OOP最好使用Alex Schriner的OOC.pdf书中提到的技术
答案 3 :(得分:2)
首先,您将确定组件及其相互作用以解决问题。 然后在每个组件内部,可以使用以下实践。
答案 4 :(得分:1)
可以使用C练习TDD,请参阅C programming and TDD。
如果您习惯练习TDD,您知道它可以帮助您保持代码组织良好和模块化。