OO类设计 - 交互两个类进行搜索

时间:2016-12-07 15:22:16

标签: php oop design-patterns

我试图为个人项目设计我的课程,但我被困住了。我在数据库设计方面有更多的经验,无法找到我的课程最佳关联/互动的OO解决方案。

我的(PHP)项目是一个工具,可以在单个网站的一个或多个phrase中搜索给定的pages。输出应显示短语,找到的次数,找到的页面以及在该页面上出现的次数。

因此,短语可以包含许多相关页面,而页面可以包含许多短语。

我很难掌握如何将我的两个班级联系起来。我知道我的phrase类需要存储文本短语,page类需要有关自身的信息(页面URL,页面名称,页面内容等)。

除此之外,我不知道在哪里逻辑存储我需要的方法

  • 在页面(或多页)中搜索短语
  • 计算在所有搜索过的网页中找到短语的次数
  • 计算每个特定页面上出现短语的次数
  • 在页面
  • 中提供(例如)围绕每次出现短语的20个字符的摘录
  • 返回包含上述信息的特定短语的数组

是否有一个phraseFinder课程可以使用phrase和一个或多个page(s)并将所有这些方法和信息存储在那里吗?

1 个答案:

答案 0 :(得分:0)

  

在页面(或多页)中搜索短语

SearchService

  

计算在所有搜索过的网页中找到短语的次数...

我建议你先建模一个嵌套结构,描述你的搜索服务需要作为一个简单的JSON对象返回给应用程序的结果。然后将每个对象或数组转换为代码中的类,如下所示:

{
  "occurrenceInfo": {
    "phrase": "cat",
    "page": {
      "id": 30,
      "name": "Cat runs on the legs"
    },
    "occurrenceCount": 50,
    "occurrences": [
      {
        "position": 500,
        "excerpt": "a portion of text of the cat"
      }
    ]
  }
}

您可以将其转换为OccurenceInfo,PhraseInfo,PageInfo,PageOccurenceInfo等类。