【问题标题】:how to code relationship between objects and list of objects如何编码对象和对象列表之间的关系
【发布时间】:2011-09-18 10:54:09
【问题描述】:

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

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

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

游戏

  • 标题
  • 说明
  • 截图
  • flash(保存 Flash 游戏对象)

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

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

非常感谢。

-导航

【问题讨论】:

    标签: oop class


    【解决方案1】:

    我不知道您使用的是什么语言,但我可以推荐 Robert C. Martin 的“敏捷原则、模式和实践”(也有 C# 版本)。里面也有很多关于 OO 设计的内容,包括所有重要的模式以及对 TDD 和敏捷的精彩介绍 - 读起来很有趣。

    对于您的问题:是的,请先提出您的第一个想法,或者使用像 List<Game> 这样的内置集合(无论您使用 C# 还是 Jave,都应该相同)

    【讨论】:

      【解决方案2】:

      我认为在 Game 中有一个(静态)方法 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

      【讨论】:

        猜你喜欢
        • 2020-12-27
        • 1970-01-01
        • 1970-01-01
        • 2015-08-24
        • 2016-02-08
        • 2011-03-08
        • 2021-08-26
        • 2021-06-20
        • 1970-01-01
        相关资源
        最近更新 更多