私の問題では、さまざまなタイプのセットと、これらのタイプのHolder
(またはその用語が好きな場合はコンテナ)クラスがあります。各Holder
は任意のタイプの要素に関連付けることができますが、任意の制限があります。「タグ付きコンテナ」に適したソリューションですか?
問題は、タイプの構造がかなり複雑になる可能性があります。サブタイプは、いくつかの異なる動作でA1,A2,A3,B1,B2
のようにすることができます。例えば
、私はクラスCar
とサブタイプConvertible
、およびApache
サブタイプを持つ別のクラスHelicopter
を持っており、コンテナは唯一、この2つの特定のタイプに関連付けることができるようにすることができます。 Car
とHelicopter
の両方は、同じ親クラス(この例に続くVehicle
)から派生します。
これは実際には難しい問題ではありません。それ自体はですが、私はそれを柔軟かつ十分に保守したいと考えています。タイプはハードコードされませんが、生成および読み込みが容易な設定ファイルから来ます。 Holders
の設定はA1 | B3 | C2
と同じくらい簡単です。だから、私は柔軟性と使いやすさの間にスイートスポットを見つけることはできません。
解決策やパターンが必要です。ビットマスクで何かを考えましたが、私はそれらの経験がなく、私はそれらを使用する最良の方法を知らない。
この特定の問題の良い解決策をご存知ですか?