可以应用什么设计模式来构建需要来自两个数据站的数据的对象?

时间:2012-10-31 14:28:24

标签: c# sql-server design-patterns

我是一名有兴趣了解“设计模式”的新手程序员。我已经阅读了很多关于多个站点的设计模式的信息,但大多数都使用了特定模式的非常基本的应用程序。

我的目标是撰写一个包含多个表数据的对象。我正在使用存储库模式从我的数据库中的一个表中提取所需的数据。但我还需要第二张表中的其他数据。 (在我看来,使用连接会不必要地复杂化)这是我不知道下一步该怎么做的地方。工厂模式最好吗?等...

在大多数情况下,至少有一些关于如何做到这一点的指导会有所帮助,而不一定是实际的“代码”。

3 个答案:

答案 0 :(得分:1)

有趣的是,你已经得到了答案。你在问题中说“撰写”。 Builder设计模式侧重于逐步构建复杂对象,它几乎总是构建一个复合

答案 1 :(得分:0)

不确定这将是多么有建设性,但我会做的是获得两个对象并从两个部分组成第三个。

MyObjectA a = GetFromDataReader1();
MyObjectB b = GetFromDatareader1();
MyCompositeObject c = MyCompositeObject.FromParts(a,b);

class MyCompositeObject
{
 // all your properties you need
  public static MyCompositeObject FromParts(MyObjectA a, MyObjectB b) 
  { //return a new MyCompositeObject here
  }
}

答案 2 :(得分:0)

您是否考虑过DataMapper类型模式(http://martinfowler.com/eaaCatalog/dataMapper.html)。

这种模式适用于存储库,因为存储库可以组成并执行查询,而数据处理器可以获取结果(datareader)并构建相关对象。

http://martinfowler.com/eaaCatalog/repository.html