1

Webサービスのデータベースマネージャーレイヤーを作成しています。ライブラリを実装する方法を決定する必要があります。これが状況です。PersistenceUnitというクラスがあります。

private static RazoooCore rc;
private static DBInstance db;
protected ODatabaseDocumentTx getDb(){return db;}
protected RazoooCooore getRc(){return rc;}

public static void startPersistence (){
    //here I get an instance of rc and db
}

これでdbサービスが開始され、接続できるようになります。私が欲しいのは、addUser(...)やdeleteFile(...)などの永続メソッドを実装するクラスを作成することです。私の疑問は、これらの方法をどのように実現するかです。2つの大きなクラスの操作(1つはユーザーともう1つはファイル)があるため、クラス(ユーザーとファイル)に作成してパブリック静的メソッドを実装するか、同じように2つのシングルトンを作成することを考えました。アプリケーション層は、毎回オブジェクトを作成および破棄せずにメソッドを呼び出す必要があります。これは私のレイヤーを実現するための良い方法ですか?このように、並行性は適切に処理されますか、それともパフォーマンスとマルチスレッドを最大化するためのより良い方法(おそらくパターン)がありますか?確かに、これはメモリにバインドされたレイヤーではありません。上位レイヤーがオブジェクトを継続的に作成する必要がないためです。ありがとうございました

4

1 に答える 1

1

オブジェクトがそれ自体を永続化する必要があるかどうかについて、多くの議論がありました。これは、User クラスに Save メソッドが必要かどうかということです。まあ、それは依存します。しかし、現在、そのパターンはほとんど見られません。

永続化ロジックはデータ アクセス レイヤー、おそらくリポジトリ (UserRepository と FileRepository) にある必要があると思います。そして、これはパフォーマンスとマルチスレッドのどちらとも関係ありません。なぜなら、両方の問題 (パフォーマンスと同時実行性) はデータベースにあるからです。

それが私の意見です。

于 2013-01-27T19:03:15.033 に答える