-1

Ruby で 15 パズルのゲーム ボードをモデル化する必要があります。表現として、行と列を持つ多次元配列 (従来の 2x2 行列として) を使用することにしました。

私の質問はArray、すべての関連情報を内部に格納するためにサブクラス化する方selfが良いですか、それとも新しいクラスを作成し、インスタンス変数を内部的に使用して multidim 配列を追跡する方が良いですか?

API はどちらの場合も同じであることを意図しています。私の質問は実装に関するものです。

4

2 に答える 2

2

クラスは配列ではないため、サブクラス化しないでください。配列で実装されるかもしれませんが、配列ではありません。

サブクラス化は LSP ( Liskov Substitution Principle )に違反します。

于 2013-10-13T16:08:02.967 に答える
0

さまざまな OOD パターンについて詳しく調べると、最も一般的なアドバイスの 1 つは、継承よりも構成を優先することであることがわかります。高度に階層化されたデータ構造の場合、継承は問題ない場合があります。しかし、ほとんどの場合、追加の依存関係を導入するだけです。

于 2013-10-13T16:11:04.523 に答える