など、さまざまなアクティビティを監視する予定がある場合は、あなたは、サービスメソッドの内部LogActivityインターフェイスの適切な実装を生成するために工場を作成することができ、ユーザからのあなたの着信要求に基づいて
@Service
public class MyUpdateServiceClass {
//Check for preconditions
LogActivity.logUserActivity(oldObject, newObject);
}
@Service
public class MyDeleteServiceClass {
//Check for preconditions
LogActivity.logUserActivity(T oldObject, T newObject);
}
public interface LogActivity {
public void logUserActivity(T oldObject, T newObject);
}
public class LogUpdateActivity implements LogActivity {
@Override
public void logUserActivity(T oldObject, T newObject) {
//Use reflection to get all the fields and iterate and check for modifications and then log accordingly
}
public class LogDeleteActivity implements LogActivity {
@Override
public void logUserActivity(T oldObject, T newObject) {
//Simply log delete, or whatever your requirement is
}
:アップデート、あなたのような何かを行うことができますなどを削除します。新しい実装を作成するだけで、LogActivityを簡単に拡張できます。
こちらがお役に立てば幸いです。
私はまだ経験豊富なメンバーのベストプラクティスに基づいて提案を探していますが、plzは研究の不足のためにdownvoteをしません@Shadow plz reopen。 –