不确定如何从数据库连接中隔离代理

时间:2012-02-05 15:18:13

标签: objective-c oop inheritance proxy domain-driven-design

我有以下内容:

  • 抽象人物对象
  • 继承自抽象
  • 的Person对象
  • 一个Person代理对象,它继承自abstract,并且有一个额外的字段,因为它本质上是一个朋友
  • 获取我需要的所有内容的人员存储库和DAO

这就是问题所在。在我检索一个人的数据时,我可以检索ID列表,这是他们的朋友列表。如果我在取得这个人之后立即建造这些物品,那就太贵了。所以我建立了一个代理作为占位符。但是,当我需要使用它时,我仍然需要数据库连接来检索数据。我如何填充代理的内部Person对象,而不像DAO那样在内部提取?或者我错了,它应该这样做吗?

1 个答案:

答案 0 :(得分:0)

好的,我已经明白了。代理对象可以有数据库连接。唯一需要注意的是,如果对象在某个时间点被序列化,可能会发生坏事,尽管我不会这样做。我所做的是在初始化时在我的DAO中传递代理,为了易于创建对象而生成工厂,以及我的对象的内部实例。之后,api必须与您代理的对象的api类似,并且其所有调用都将简单地转发到内部实例。