【发布时间】:2016-12-07 15:22:15
【问题描述】:
我正在尝试为个人项目设计课程,但我遇到了困难。我在数据库设计方面有更多经验,并且找不到我的类应该如何最好地关联/交互的 OO 解决方案。
我的 (PHP) 项目是一个工具,它将在单个网站的一个或多个 pages 中搜索给定的 phrase。输出应显示短语、找到它的次数、在哪些页面上找到它以及在该页面上出现了多少次。
所以一个词组可以有很多相关的页面,而一个页面可以包含很多词组。
我很难掌握如何将我的两个课程联系起来。我知道我的phrase 类需要存储文本短语,page 类需要关于自身的信息(页面 URL、页面名称、页面内容等)。
除此之外,我看不到在哪里可以逻辑地存储我需要的方法
- 在一个页面(或多个页面)中搜索一个短语
- 计算在所有搜索过的页面中找到一个短语的次数
- 计算一个短语在每个特定页面上出现的次数
- 在页面中每个出现的短语周围提供(例如)20 个字符的摘录
- 返回包含上述信息的特定短语的数组
有一个 phraseFinder 类,它接受一个 phrase 和一个或多个 page(s),并将所有这些方法和信息存储在那里是否有意义?
【问题讨论】:
-
是的,搜索算法应该被隔离到它自己的类中。我会以 map reduce 的方式实现它。
-
页面内容在哪里?您会搜索 html 页面,还是要将页面内容加载到 Page 对象中,然后在那里搜索短语。这两种情况需要不同的解决方案吗?
-
所有页面内容都存储在数据库中。不需要将它们加载到自己的对象中,但我认为这对我的设计来说是最好的,以防我将来想搜索其他来源。
标签: php oop design-patterns