2

Session多数のカウンターを追跡し、データベースに永続化するクラスがあります。私の質問は主にクラスデザインの質問であり、Androidに固有のものではありませんが、Androidに取り組んでいます。これは、データベースへの書き込みがメインスレッドで行われないようにするためにのみ関連しています

私はpersist()、セッションをデータベースに書き込む方法の2つの代替案を検討しています(これは潜在的に遅くなる可能性があり、成功するかどうか/いつ成功するかについて過度に心配していません)。

内部の並行性と実行

public class Session()
{
   //.. getters and setters...

   void persist()
   {
       Runnable r = new Runnable(){
          // Implement logic in run() with slow 
          // db operations
       };
       ExecutorService executor = getExistingExecutor();
       executor.submit(r);
   }
 }

外部での並行性と実行

public class Session()
{
   //.. getters and setters...

   void persist()
   {
     // Implement logic in run() with slow 
     // db operations
   }
 }

私は基本的にオブジェクト設計の観点から疑問に思っていますが、実行が遅くなる可能性のあるコードを使いやすくするためにきちんとまとめる最良の方法は何ですか?分業の問題があるかどうかにも興味があります(Sessionセッションのストアの値だけでなく、それ自体を維持する方法も知っています...それが素晴らしいOOか過度に複雑かを判断できません)。

4

1 に答える 1

1

一般に、オブジェクトの永続性をオブジェクトの実装から除外することは、適切な設計です。実装を変更せずに永続化の仕組みを変更したい場合があります (そうするでしょう!)。

したがって、データの保存と取得のみを担当する別のオブジェクトを用意する必要があります。

于 2012-11-09T04:27:56.693 に答える