【问题标题】:Are class members mandatory? [closed]班级成员是强制性的吗? [关闭]
【发布时间】:2013-12-10 14:01:32
【问题描述】:

我记得几年前在某处读到(或听说)类必须具有操作、属性和操作,或者至少具有属性作为强制性要求——不能为空。我要问的是,拥有一个空类,或者一个具有属性或操作而没有另一个的类是否违反了软件工程规则。

我只是想确保我的类图对于我的项目是正确的。

谢谢。

【问题讨论】:

  • 有一个空的类是什么都没有违反,但通常是没有理由的。您的定义只允许操作/属性,那么它有什么问题?
  • 我的问题很明确,我正在寻求专家的建议:“我要问的是它是否违反了软件工程规则 [...]。”

标签: class oop methods


【解决方案1】:

你当然可以有一个有属性但没有操作的类,反之亦然。

至于没有属性没有操作的类 - 大多数(全部?)OO语言都允许这样做,但当然这样的类不会非常有用,除非作为基类某种意义上的。

【讨论】:

    【解决方案2】:

    工程就是打破规则和跳出框框思考。

    一个没有属性(属性等)或方法(操作等)的空类就是:一个什么都不做的抽象数据类型。

    如果不是预定义的,许多类型系统(如果不是大多数类型系统)都提供这样的东西。

    如果您自己定义,那么您应该有充分的理由这样做。例如,在 C++ 中,在元编程中用作对象或标记的类通常是完全空的,因为它仅用于在编译时通过类型系统或函数重载传递信息,并且理想情况下在运行时不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多