【问题标题】:What behaviors should be in and out of the class课堂内外应该有哪些行为
【发布时间】:2022-01-11 06:47:09
【问题描述】:

假设我有一个类对某种对象进行建模,例如图(在图论意义上)。

我将在类中拥有图形结构和数据,但是其他更复杂的行为呢?例如,我想创建一个以特定方式转换图形的函数,或者以 JSON 格式转储图形。这些函数应该在类内还是类外?

我的第一个想法是把这些函数放在类里面,但是如果我放很多函数,每个图形对象会占用更多的内存对吗?

这个问题有明确的指导方针吗?另外,它是否依赖于语言?

【问题讨论】:

    标签: class object oop architecture software-design


    【解决方案1】:

    除了 OOP 原则之外,没有围绕这个 AFAIK 的强有力的指导方针。

    以 JSON 格式转储图形的函数应该是类的一部分,因为它直接使用图形数据结构(应该是私有的),所以不要将其暴露在外部并使用不同的类来转换图形对于JSON,有graph.toJson()之类的方法并获取JSON字符串更方便。

    同样的想法,如果你想把一个图转换成一棵树,或者平衡一棵树,调用graph.toTree()tree.balance()更方便,所以方法应该是类的一部分。

    一般来说,我会在类之外添加功能,只有当它可以重复使用并且不依赖于类的内部状态时。

    当您在一个类上添加多个方法时,这并不意味着该对象会消耗更多内存。调用方法时分配内存。当你只是传递图形对象时,主内存将由图形数据结构分配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      相关资源
      最近更新 更多