2009-10-05 127 views
0

我有什么?设计问题

我有如下要求:

  • 搜索数据库,并返回TreeNode对象建立一个树视图
  • 搜索数据库,并返回一个泛型列表构造图。
  • 扩展应该在那里做搜索和返回不同类型的对象
  • 数据库是巨大的,性能应该以高优先级被认为是

我会面临什么问题?

我想为问题做一个类设计。这里,搜索方法是相同的,只有返回类型不同。我很困惑这里使用哪种设计模式。

有人可以帮我吗?

在此先感谢!

更新-1

在搜索逻辑将是相同的,并且API提供该目的。 API将接受搜索参数并将结果作为DataReader(在C#中)返回。使用阅读器,我需要构建TreeNode,通用列表或将来可能出现的任何其他对象。

我需要设计一个位于业务层的组件来服务表示层。根据用户的选择,搜索结果将以不同的控件显示。这些控件需要绑定不同类型的对象。

回答

1

我真的不明白这个问题。您的要求清单过于模糊。

什么是您的数据库? 你如何访问它? 那里有什么样的数据? 你在设计什么样的程序? 设计的哪个子部分有问题?


更新

好了,所以我认为你必须设置2种模式。

首先,您需要一种以统一格式从数据库检索数据的方法。这应该使用工厂模式使用[摘要] 完成。 工厂只会为提取的数据提供一个标准容器(您的Reader)。

接下来,你需要一些东西来适应这个统一的数据(即一个适配器)。 这只是一组仿函数结构,可以从标准的统一提取数据(从数据库)转换为特定组件的特定数据。

工厂应该留在业务层,而适配器应该在表示层。

+0

我已经更新了这个问题。 谢谢你的时间。 – Vijay 2009-10-05 08:59:21

+0

好的。让我试试看。谢谢! – Vijay 2009-10-05 10:55:15

0

那么,你指定了你想实现的一般功能。但是你没有提到这个功能的消费者。而使用场景是设计背后的推动力。因此,为了进行设计,您需要指定场景。例如,在战略模式背后抽象搜索算法是没有意义的,除非它将被多元化地使用。

+0

我已经更新了这个问题。谢谢你的时间! – Vijay 2009-10-05 09:02:27

0

我想你需要看看工厂模式。

该接口将从工厂请求树或列表或X Creator,然后创建者将执行搜索并解释DataReader以构建所选数据类型。