Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Ruby で 15 パズルのゲーム ボードをモデル化する必要があります。表現として、行と列を持つ多次元配列 (従来の 2x2 行列として) を使用することにしました。
私の質問はArray、すべての関連情報を内部に格納するためにサブクラス化する方selfが良いですか、それとも新しいクラスを作成し、インスタンス変数を内部的に使用して multidim 配列を追跡する方が良いですか?
Array
self
API はどちらの場合も同じであることを意図しています。私の質問は実装に関するものです。
クラスは配列ではないため、サブクラス化しないでください。配列で実装されるかもしれませんが、配列ではありません。
サブクラス化は LSP ( Liskov Substitution Principle )に違反します。
さまざまな OOD パターンについて詳しく調べると、最も一般的なアドバイスの 1 つは、継承よりも構成を優先することであることがわかります。高度に階層化されたデータ構造の場合、継承は問題ない場合があります。しかし、ほとんどの場合、追加の依存関係を導入するだけです。