C でのプロキシ クラスの探索
プロキシ クラスは、別のクラスへの変更されたインターフェイスの作成を可能にする C の基本的なプログラミング手法です。 、ターゲット クラスとして知られています。この概念は、さまざまなプログラミング シナリオで非常に重要であることがわかります。
2 進数 (0 と 1) のみを格納するように設計された配列の例を考えてみましょう。素朴な試みとして、以下に示すようにインデックス演算子を使用して配列を定義する可能性があります。
struct BinaryArray { int mArray[10]; int &operator[](int i); };
ただし、このアプローチには欠陥があります。配列に 2 進数のみが格納されるように強制する方法がありません。これを解決するには、プロキシ クラスを使用します。プロキシは、ユーザーとターゲット クラスの間の仲介者として機能し、メンバーへのアクセスが制限されたカスタマイズされたインターフェイスを提供します。
この 2 進数の配列の例では、割り当てをインターセプトする BitProxy というプロキシ クラスを作成できます。インデックス演算子によって作成されます:
struct BitProxy { BitProxy(int &r) : mPtr(&r) {} void operator=(int n) { if (n != 0 && n != 1) { throw "Invalid binary digit"; } *mPtr = n; } private: int *mPtr; };
インデックス演算子で BitProxy オブジェクトを返すように配列クラスを変更することで、配列に格納できる値の範囲を効果的に制限します:
struct BinaryArray { int mArray[10]; BitProxy operator[](int i) { return BitProxy(mArray[i]); } };
ここで、バイナリ以外の数字を配列に割り当てようとすると、BitProxy は例外をスローすることで配列の整合性を確保します。この簡単な例は、クラス インターフェイスに対するきめ細かい制御を提供するプロキシ クラスの力を示しています。
以上がプロキシ クラスは C でデータの整合性をどのように確保できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。