OOP 言語のタプル クラスのセット: Pair、Triple、Quad がある場合、Triple は Pair をサブクラス化し、Quad は Triple をサブクラス化する必要がありますか?
問題は、私が見ているように、トリプルをペアとして代用できるかどうか、同様にクワッドをトリプルまたはペアとして代用できるかどうかです。トリプルもペア、クワッドもトリプルとペアか。
1 つのコンテキストでは、このような関係は拡張性にとって価値があるかもしれません。今日、この Thing は Pair of を返しますが、明日は、3 つのうち最初の 2 つだけを使用している既存の呼び出し元を壊すことなく Triple を返す必要があります。
一方、それらはそれぞれ別個のタイプである必要がありますか? ペアを期待するメソッドにトリプルを渡すことができない場合、より強力な型チェックに利点があることがわかります。
私は継承の使用に傾倒していますが、他の人からの意見を本当に感謝していますか?
PS: 場合によっては、クラスは (もちろん) ジェネリックになります。
PPS: もっと主観的な話ですが、名前は Tuple2、Tuple3、Tuple4 にするべきですか?
編集: 私はこれらを疎結合グループと考えています。x/yx/y/z 座標のようなものには特に使用されませんが、そのようなものに使用される場合があります。メソッドからの複数の戻り値に対する一般的な解決策が必要になるようなものですが、非常に単純なセマンティクスを持つ形式です。
とはいえ、他の人が実際にタプルを使用したすべての方法に興味があります。