ユーザー調整可能なデータ構造

delphi design-patterns dynamic

連絡先データベースに使用されるデータ構造_Person_を想定します。 ユーザーが構造体にユーザー定義フィールドを追加し、さらに既存のフィールドを変更できるように、構造体のフィールドは構成可能であるべきです。 だから基本的には次のような設定ファイルがあるはずです。

FieldNo FieldNameデータ型DefaultValue 0名前文字列 "" 1年齢整数 "0" ...

その後、プログラムはこのファイルをロードし、動的データ構造を管理し(「実行時に変更」するのではなく、「構成ファイルから変更する」方法で動的に)、データフィールドへの簡単でタイプセーフなアクセスを可能にします。 。

私はすでにこれを実装しました。各データフィールドについての情報を静的配列に格納し、変更された値のみをオブジェクトに格納します。

私の質問:その状況を説明するパターンはありますか? 私は、ユーザーが調整可能なクラスを作成するという問題に遭遇した最初の人ではないと思いますか?

前もって感謝します。 質問が明確でない場合は教えてください。

  2  3


ベストアンサー

Martin Folwerによる「Patterns of Enterprise Application Architecture」を見てきました。そして_Metadata Mapping_パターンはあなたが何を記述しているのかを(一目で)説明しています。

抜粋…​

「メタデータマッピングにより、開発者はマッピングを単純な表形式で定義することができます。その後、データの読み取り、挿入、更新の詳細を実行するために一般的なコードで処理できます。」

HTH

5


私は、Martin Fowlerの「エンタープライズアプリケーションアーキテクチャのパターン」(https://rads.stackoverflow.com/amzn/click/com / 0321127420)にあるさまざまなオブジェクトリレーショナルパターンを調べることをお勧めします。 これはここでカバーするパターンのリストです。

あなたの問題に最適なのは、メタデータマッピング ここです。 他のパターン、マッパーなどがあります。

3


これを処理する通常の方法は、クラスがユーザー定義レコードのリストを持つことです。各レコードはユーザー定義フィールドのリストで構成されます。 これに関する設定情報は、型ID、フィールド型などを含むデータベーステーブルに簡単に格納できます。実際のデータは、(objectidフィールドインデックス)/文字列のペアとしてのみ表されるデータを含む単純なテーブルに格納されます。データベースを読み書きするときの実数型との間の文字列。

0


タイトルとURLをコピーしました