我是一名有兴趣了解“设计模式”的新手程序员。我从多个站点阅读了很多关于设计模式的信息,但大多数都使用特定模式的非常基本的应用程序。
我的目标是组成一个包含来自多个表的数据的对象。我正在使用存储库模式从我的数据库中的一个表中提取所需的数据。但我还需要第二张表中的其他数据。(在我看来,使用 Joins 会使这不必要地复杂化)这是我不确定下一步该做什么的地方。工厂模式会是最好的吗?ETC...
在大多数情况下,至少一些关于如何做到这一点的指导会有所帮助,而不一定是实际的“代码”。
我是一名有兴趣了解“设计模式”的新手程序员。我从多个站点阅读了很多关于设计模式的信息,但大多数都使用特定模式的非常基本的应用程序。
我的目标是组成一个包含来自多个表的数据的对象。我正在使用存储库模式从我的数据库中的一个表中提取所需的数据。但我还需要第二张表中的其他数据。(在我看来,使用 Joins 会使这不必要地复杂化)这是我不确定下一步该做什么的地方。工厂模式会是最好的吗?ETC...
在大多数情况下,至少一些关于如何做到这一点的指导会有所帮助,而不一定是实际的“代码”。
有趣的是,您已经找到了答案。您在问题中说“撰写”。Builder设计模式专注于逐步构建一个复杂的对象,它几乎总是构建一个 Composite
您是否考虑过 DataMapper 类型的模式(http://martinfowler.com/eaaCatalog/dataMapper.html)。
这种模式适用于存储库,因为存储库可以组合和执行查询,而数据映射器获取结果(数据读取器)并构建相关对象。
不确定这会有多建设性,但我会做的是得到两个对象并从两个部分组成第三个对象。
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
}
}