-1

我必须用 Ruby 建模一个 15 拼图游戏板。作为表示,我选择使用具有行和列的多维数组(作为经典的 2x2 矩阵)。

我的问题是:Array为了将所有相关信息存储在里面,最好是子类化,self还是创建一个新类更好,并在内部使用实例变量来跟踪 multidim 数组?

API 在这两种情况下都是相同的,我的问题是关于实现的。

4

2 回答 2

2

你的类不会是一个数组,所以不要子类化它。它可以用一个数组来实现,但它不是一个。

子类化会违反 LSP(Liskov 替换原则)。

于 2013-10-13T16:08:02.967 回答
0

如果您更多地探索不同的 OOD 模式,您会发现最常见的建议之一是支持组合而不是继承。对于高度分层的数据结构,继承可能很好。但在大多数情况下,您只会引入额外的依赖项。

于 2013-10-13T16:11:04.523 回答