【发布时间】:2009-06-07 12:08:09
【问题描述】:
首先让我说,我在 C 和 C++ 方面都有相当多的经验。但是,我正在使用 C 语言开始一个新项目,并且我一直在使用面向对象的语言(C# 和 C++),以至于我无法想出一种将功能封装在过程语言中的有效方法。我的第一个想法是简单地依靠我的 OO 知识并将其结构化为:
struct Foo
{
int x;
char *y;
};
struct Foo *new_Foo()
{
return (struct Foo *)malloc(sizeof(struct Foo));
}
void Foo_member_function(struct Foo *foo, int z)
{
foo->x = z;
}
但这似乎很乏味,与 C 的精神背道而驰。更不用说它是穷人的 OO。
这个程序最终会变得相当大,所以从一个好的设计组织开始是至关重要的。我想随着 C 语言的多年发展,某些设计模式已经发展到如何最好地构建代码以实现可维护性。就像函数式编程一样,我希望过程式编程有一个干净且可读性强的范式。
指向相关文章和书籍的指针也是可以接受的。
【问题讨论】:
-
我不想只选择一个答案,因为它们都有有用的花絮,但不透明指针参考可能是我不知道的最有用的东西。谢谢!
标签: c