我有什么?
我有以下要求:
我面临什么问题?
我正在尝试为这个问题做一个类设计。这里,搜索方法相同,只有返回类型不同。我很困惑在这里使用哪种设计模式。
有人可以帮助我吗?
提前致谢!
更新-1
搜索逻辑将是相同的,并且提供了API。 API将接受搜索参数并将结果作为DataReader返回(在C#中)。使用阅读器,我需要构建TreeNode,通用列表或将来可能出现的任何其他对象。
我需要设计一个位于业务层的组件来为表示层提供服务。根据用户的选择,搜索结果将显示不同的控件。这些控件需要不同类型的对象来绑定。
答案 0 :(得分:1)
我真的不明白这个问题。您的要求清单太模糊了。
你的数据库是什么? 你怎么访问它? 那里有什么样的数据? 你在设计什么样的程序? 设计的哪个子部分有问题?
<强>更新强>
好的,所以我认为你必须设置2种模式。
首先,您需要一种以统一格式从数据库中检索数据的方法。这应该使用[ abstract ] Factory 模式完成。 Factory 只会为获取的数据提供标准容器(您的Reader)。
接下来,您需要一些东西来调整这些统一数据(即 Adapter )。 这只是一组类似仿函数的结构,可以从标准的统一提取数据(从数据库)转换为特定于组件的所需数据。
factory 应保留在业务层中,而适配器应位于表示层中。
答案 1 :(得分:0)
好吧,您命名了您想要实现的一般功能。但是,您没有提到此功能的消费者。使用场景是设计背后的驱动力。因此,为了继续进行设计,您需要指定方案。例如,在策略模式背后的搜索算法中没有任何意义,除非它将被多态地使用。
答案 2 :(得分:0)
我认为您需要查看Factory模式。
接口将从工厂请求树或列表或X Creator,然后创建者将执行搜索并解释DataReader以构造所选的数据类型。