【问题标题】:Design Pattern For Searching Objects in Application应用程序中搜索对象的设计模式
【发布时间】:2014-03-13 20:01:30
【问题描述】:

需要一些有关设计模式的帮助。我正在创建一个应用程序,该应用程序对存储在单独表中的数据库中的对象具有不同类型。 例如: 我有 5 种对象 A、B、C、D、E 我在数据库中有 5 个不同的表来存储每个对象。

现在,我想在我的应用程序中实现搜索功能。这意味着用户将给出一个名称和多个对象类型。对于每种对象类型,我需要为给定名称搜索单独的表。 有人可以建议在这种情况下使用哪种设计模式吗? 我打算编写 jpa 查询来从表中获取数据

【问题讨论】:

  • oodesign.com 可能有用。
  • 我建议您查看类似 Lucene/Solr(可选用 Hibernate Search 包装)之类的东西,尤其是当您的搜索需要大量文本或进行滚雪球和同义词之类的事情时。
  • 我调查了它..但我的搜索不会是繁重的文本..我只需要匹配名称..我需要考虑的事情是,在实际场景中,我将有一些20 -30 种对象类型 .. 那么想知道我应该遵循的任何特定设计吗?

标签: java search design-patterns jpa


【解决方案1】:

不要试图强迫每个问题适应众所周知的设计模式,这可能看起来像是使用Visitor Pattern 的案例。

如果你没有层次结构,它会简化为一个 for 循环。

让您的数据访问对象 (DAO) 实现一个返回主键 (PK) 的搜索接口:

public interface ISearch {
    public int search( String text );
}

按查询类型和PK收集结果。 这些实现可以与名称、备注、描述等进行比较。您可能希望向接口添加另一个方法,该方法返回查询项的文本表示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多