gpt4 book ai didi

oop - 学习面向对象的思维

转载 作者:行者123 更新时间:2023-12-03 06:51:21 25 4
gpt4 key购买 nike

我目前正在用 C++ 开发一个小型 2D 游戏引擎,但我现在面临着一个守护进程 - 我不擅长设计一个真正有效的“类系统”。我的脑海里有一道障碍,让我看不到哪里应该使用类(class),哪里不应该使用类(class)。我正在阅读一篇关于引擎设计的文章,它的目的是使用“State”类来管理不同游戏条目的状态(我使用的是 int)。它还建议游戏的所有对象(不是 io/视频/声音等)都派生自 Renderable 或 NonRenderable 类。这很聪明。我已经知道这是一种聪明的方法 - 我的意思是,Java 中的每个对象都是基类 Object 对吧?聪明,我知道!我怎么没那么做呢?我需要读什么才能真正进入这种心态?

另一个例子。我正在参加 Ruby 暑期类(class)(非常简单),我们应该设计一个露营地。简单的!因此,露营是一系列“地 block ”的集合,每个地 block 都有一个电量计来测量客人消耗了多少电量。我的设计是三个类,其中一个用于露营 - 依次使用 Guest 和 Plot 类的数组。我的老师建议我多上课。 WTF(!)是我的第一个想法,在哪里,什么类(class)?在我看来,一切都是一个类 - 直到我意识到,也许仪表应该是一个类?现在,仪表是 Plot 类中的一个 Integer。

我想学习如何针对我的问题提出面向对象的解决方案 - 不仅仅是如何将最明显的东西放入类中!

提示/书籍/文章/博客?

我已经获得计算机科学大学学位两年了,并且多年来一直将编程作为一种爱好!我“只是”陷入困境 - 它阻止我创建任何更大的软件!

最佳答案

我的个人经验是使用 Object Oriented Software Construction, 2nd Edition 学习面向对象的软件构建作者:伯特兰·迈耶。

这本书对我来说是无价的,并且仍然是我从中学到最多有关 OO 编程和一般软件构造的书。

以下是它的一些优点:

  • A 部分:问题中,对软件质量给出了非常好的定义。
  • B 部分:通向对象之路中,对 OO 技术进行逻辑性、逐步的搜索,其方式让读者认为调查是实时进行的,也就是说,就好像仍然没有已知的结果。您可能会从这一部分中获得您正在寻找的心态。
  • C部分:面向对象技术(本书的技术核心)中,您将巩固自己的知识,并学习有关契约设计、继承、通用性等非常有用的技术。<
  • D部分:OO方法论:很好地应用方法是一种比较实用的设计方法,我也觉得非常有用。例如,请参阅如何查找类 (22),您可以找到 online .

在这些部分之后,出现了更高级的主题,例如并发 (30)数据库 (31)

由于本书使用 Eiffel语言(由作者设计),这会让你处于正确的心态并教你思考。很容易将这些想法应用到其他或多或少的面向对象的编程语言中。

关于oop - 学习面向对象的思维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com