面向对象项目示例:帮助过程式编程者

3

请帮我找一些中小型的开源项目,这些项目体现了面向对象设计(最好是C++或Java)。我想用这些项目来展示如何使用面向对象的设计解决现实世界中的问题(而不是教科书上的例子)。我希望能够提出一个合理的解释,说明为什么选择某些事物作为对象以及它们如何共同解决问题。


1
你可能在浪费时间:面向对象的概念最好通过实践理解,而非阅读。如果他们从人为制造的课本例子中无法“领会”,那么更复杂的现实世界例子也不会让他们“领会”,因为这两者都不符合受众的兴趣。在他们自己的代码中展示差异,他们就会明白了。 - Steven A. Lowe
1
我不知道这是否一定是浪费时间。这取决于一个人处理信息的方式。就我个人而言,我形成了很多编码习惯/策略,都是通过阅读其他人的代码形成的。 - Charles Salvia
5个回答

2

虚幻竞技场公共源代码(432个标头) 包含了 Unreal 引擎类库的声明,用 C++ 编写。我发现它是一个大型面向对象程序的一个丰富例子。它教会了我如何模块化和面向对象地编写代码。它还演示了许多获取大型代码库控制权的策略。

此外,由于你只能阅读头文件,因此你将度过一段有趣的(并且有教育意义的)时间来尝试弄清楚整个过程的组成部分。(实际上,我最终编写了自己的 x86 反汇编程序,以便可以作弊并阅读一些定义!)

同样,Doom 3 SDK 包含了大量易读的 C++ 代码,其中包含了 Doom/Quake 引擎的很多内容。


2

谷歌的Chromium(C++): windows、标签页、插件等都是类。


0

我曾向我的面向对象导师提出了同样的问题。他指引我去查看JUnit源代码,并建议我逐个版本地观察其演变。这将展示Kent Beck如何编写Java代码。

另一个类似的例子是Ward Cunningham的Fit源代码。


0
几乎所有用Java设计的大型项目都是面向对象的,这几乎是定义。你可以看一下Apache Hadoop,它是一个用Java编写的大规模开源面向对象项目。另一个是Apache Ant

0

Eclipse 是 Java 方面的一个很好的例子:插件架构完全是面向对象的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接