如何编码对象和对象列表之间的关系

时间:2011-09-18 10:54:09

标签: oop class

我是面向对象编程和学习设计类的新手。

我想知道如何设计一个包含自身列表的类。

例如,我有一个名为Game的类将遵循以下定义:

游戏

  • 标题
  • 描述
  • 截图
  • flash(持有flash游戏对象)

我想在页面上显示游戏列表。什么方法对它有好处? 创建另一个类GameList并创建要列出的游戏数组或 创建一个函数Game.ListAll来显示游戏列表?

我觉得前者是更好的方法。我需要你的导游。 另外,我不知道在实际学习什么以清除我在设计课程及其关系等方面的概念。 你能不能给我推荐一本易于理解的书CBT?

非常感谢。

-Navi

2 个答案:

答案 0 :(得分:0)

我不知道你正在使用什么样的语言,但我可以推荐Robert C. Martin的“敏捷原理,模板和实践”(也有C#版本)。在那里也有很多关于OO设计的东西,以及所有重要的模式以及TDD和Agile的精彩介绍 - 阅读起来很有趣。

对于你的问题:是你的第一个想法或使用像List<Game>这样的inbuild集合(无论你使用的是C#还是Jave都应该是相同的)

答案 1 :(得分:0)

我认为在游戏中使用(静态)方法listAll()是一个糟糕的设计:游戏不应该知道其他游戏,你需要构造函数或工厂方法来处理列表,你无法处理单独的列表。

因此,在游戏之外使用列表。如果您不需要GameList的特殊行为,那么您将对列表进行处理。如果您有特殊行为,使用GameList进行设计是正确的选择。

对于良好的OO设计,我会按以下顺序读取

  1. 来自object mentors article list的相关文章以获得概述。您可以在principles of ood找到与您最相关的链接。
  2. 一本关于设计模式的书,我最喜欢的仍然是古典Design Patterns from the GoF
  3. 阅读Agile Software Development, Principles, Patterns, and Practices from Uncle Bob