0

C#のような言語での状態制御は十分にサポートされていないことに気づきました。

つまり、メモリ内オブジェクトの状態を管理するのはプログラマーに任されています。一般的なユースケースは、ドメインモデルのインスタンス変数が永続ストレージ(つまりデータベース)に存在する情報のコピーであるというものです。明らかに、これは単一の権限の原則に違反しており、「同期」は開発者が管理する必要があります。

インスタンス変数の代わりに、データベースにリンクする属性でマークされた単純なパブリックアクセス/ミューテーターメソッドがあり、読み取りと書き込みがデータベースにアクセスするかどうかを決定するフレームワークによって仲介されるシステムを想定しています。そのようなシステムは存在しますか?

私は完全に要点を見逃していますか、それともこの考えにいくつかの真実がありますか?

4

2 に答える 2

1

必要なものを正しく理解している場合:遅延読み込みを使用するORマッパーはすべてこのように機能します。たとえば、私はGenomeを使用していますが、すべてのエンティティは純粋なプロキシであり、フィールドをキャッシュする方法をOR-Mapperに指示するのに非常に大きな影響があります。

于 2010-12-23T18:21:39.250 に答える
0

実際には、データの普及という概念があり( Javaのprevaylerによって実装されているように)、メモリ内のオブジェクトがデータの単一の権限(SPA)です。

また、一部のオブジェクトデータベース(db4oなど)は、オブジェクト表現と「ストア」表現の間の線を少しぼかします。

一方、アプリケーション内にデータ用のSPAを導入することにより、トランザクションやデータの永続性を自分で処理する必要があります。JVSTM(現在私の古い大学の情報システムで使用されている)などのトランザクションメモリシステムで行われた作業がいくつかありますが、広く使用されていません。

一方、データがデータベースに存在する場合は、すべてが正常なときにデータをコミットし(またはデータベースに組み込まれたトランザクションのサポートを使用して)、データが破損または失われないようにすることができます。データの信頼性とトランザクション(および別のデータストアを使用するその他の利点)を向上させるために、SPAの原則を交換します。

于 2011-04-06T09:52:44.643 に答える