【问题标题】:Is it possible to design a Class so that its instances only exist as items of a Collection?是否可以设计一个类,使其实例仅作为集合的项目存在?
【发布时间】:2013-06-16 16:31:34
【问题描述】:

我正在尝试开发 GPS 收集数据的概念模型(面向对象)。通常常见的类有Track,代表Trackpoints的有序序列,类Trackpoint本身,具有纬度、经度、海拔、时间戳、速度、累积距离等属性。

事实是:由于 Trackpoint 实例仅作为 Track(或 SegmentConnectedSegment 或其他可能的类似集合类型)的项目“有意义”,所以问题是:

设计一个类以使其作为集合成员“表现”更好(或完全)是好的/常见的做法吗?我应该设计集合本身来强制执行此操作吗?

【问题讨论】:

    标签: collections language-agnostic strong-typing ooad


    【解决方案1】:

    我认为大多数语言都提供了各种集合实现,并且它们都得到了很好的优化。滚动您自己的实现没有多大意义。

    如果您真的不希望“TrackPoint”在“Track”之外可见,那么在 Java 中,可以在 Trackclass 的定义中将 TrackPoint 设为私有类。我想在其他语言中,您也可以应用类似的可见性限制。同样,通常也不需要这种设计。

    设计一个以TrackPoint 列表为成员的Track 类。就这么简单,完美的OO设计。

    【讨论】:

    • "设计一个 Track 类,其中包含 Track 列表作为成员。"你的意思是Trackpoint的列表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2013-06-13
    • 2015-11-12
    • 2018-01-13
    相关资源
    最近更新 更多