これらの動作を示す必要があるシステムに取り組んでいます。
- 監査証跡
- 元に戻す / 特定のバージョンに戻す (このようなアクション自体が監査ログに記録されます)
ここで少し似た質問を見ましたが、私がやろうとしていることの一部しか扱っていません。さらに、オブジェクトのライフサイクル全体 (つまり CRUD) をキャプチャしたいと考えています。
これを実装する方法は次のとおりです。
- オブザーバー パターンに基づく ChangeManager クラスを用意する
- コマンド パターンの変更を「まとめる」ベース オブジェクトからオブジェクトを派生させる
- いずれかの CRUD イベントでコマンド オブジェクトを使用して ChangeManager に通知する
注: 「変更」コマンドは次のもので構成されます。
- フィールドの変更を詳述する 2 タプルの (順序付けられた) コレクション (prev、new)
- 変更を行ったユーザーの ID
- 変更のタイムスタンプ
これは単なる「思いつき」であり、私が取ろうと考えているアプローチには穴があるかもしれません。以前にこの種の動作を実装したことがある人からの助けと、一般的なアドバイス、長所、および上で概説したアプローチの短所-または、より良い/代替アプローチかもしれません。正しい方向に私を向けるためのスニペットまたは2つも大歓迎です!.
実装言語として C# を使用します。