2

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

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

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

4

3 回答 3

1

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

于 2012-10-31T14:32:21.170 回答
0

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

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

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

于 2012-11-01T13:37:40.553 回答
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
  }
}
于 2012-10-31T14:32:49.160 回答