2

我有一个类Session可以跟踪一堆计数器并保存到数据库中。我的问题主要是一个类设计问题,而不是特定于 Android,但我正在使用 Android,这只是因为我想确保写入数据库不会发生在线程上。

我正在考虑persist()将会话写入数据库的方法的两种替代方法(这可能会很慢,而且我并不太担心它是否/何时成功):

内部并发和执行

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 回答