データを3通り表現できる「アイテム」があります。私はある表現から他の表現のいずれかに、ランタイムコストで変換することができます。私が変換を行うと、私は新しい表現を周りに残したいと思います。データの表現は、コアデータを「変更する」ことなく、他のものに変換することができます。ランタイムコストのために、データの3つの表現を含むクラスが必要です。いつでも、それらの1〜3が有効になります。複数の表現を持つアイテムのC++デザインパターン
実際のところ、ユーザーが何かを求めることができるアクセス方法もあるためです。この何かは、1つ以上の表現から得ることができます。たとえば、表現1の「範囲」と表現2または3の「ボリューム」を得ることができます。
私の解決策は、3つの表現をメンバーデータとして持つクラスを作成することです)。次に、必要な表現を内部的に知っているgetRange()メソッドを作成し、必要に応じて作成します。これは正常に動作し、getメソッドをconstにすることができないという点を除いてすべての問題を解決します。
このソリューションの実際の問題は、内部的に他の表現を作成する可能性があるため、このクラスの「定数」インスタンスでも実際にはconstではないということです。ただし、表現を変更してもコアデータは変更されないため、実際は「定数」です。
このクラスに役立つC++デザインパターンはありますか?助言がありますか?
これは素晴らしいことです。ちょうど私が欲しいもの。予想以上に簡単!ありがとうございました。 – user3375624