ドメインモデルの戦略パターンを使用する必要がある例に遭遇しています。システムのユーザーを表すUserクラスがあります。各ユーザーは、システムの使用中にリクエストを受け取る場合があります。リクエストを受信すると、いくつかの処理ロジックが可能になります。
- リクエストを自動的に削除します
- 受信したリクエストについてユーザーに通知します
- 等...
この場合、戦略パターンが適応しているようです。このインターフェイスを実装する複数のクラス(つまり、処理ロジックごとに1つのクラス)を持つRequestReceivedPolicyというインターフェイスがあります。Userクラスは、選択したポリシーに対応するクラスの1つのインスタンスの参照を保持します。
これはオブジェクト側で正しいようです。私の質問は、私の場合はリレーショナルデータベースである永続性の側面に関するものです。ユーザーは、管理インターフェースを介してポリシーを選択します。次回ユーザーがログインしたときにこの情報が保存されるように、この選択を維持したいと思います。Userクラスによって保持されているインスタンスを永続化することを考えましたが、このインスタンスはデータよりもロジックに関するものであるため、正しい方法ではないと思います。
ありがとう
編集:
public RequestReceivedPolicy {
public boolean processRequest();
}
public IgnoreRequestPolicy implements RequestReceivedPolicy {
public boolean processRequest(){
//ignore logic
}
}
public CustomRequestPolicy {
private int someData1;
private String someData2;
public boolean processRequest(){
//custom logic that uses someData1 and someData2
}
}