我为研究目的编写代码,其中我搜索大量文件并根据它们的相关性对它们进行排名。我将整个过程称为快速搜索,它由两个连续的阶段组成 - 首先搜索文件并检索候选文件列表,然后对这些候选项进行评分并对它们进行排名。设计OOP解决方案
因此,快速搜索只是搜索方法和分数方法的串行组合。我打算实施各种搜索和评分方法,并且我想测试所有可能的组合并评估它们,以查看哪些是获胜的组合。
由于组合的数量会增长得非常快,因此在良好的结构和设计中编写代码非常重要。我考虑以下设计(我写在python的代码):
- 将接收指针给搜索和射手功能
- 甲quickSearcher类,将接收一个搜索器对象和射手对象A quickSearcher类
- 一个quickSearcher CALSS将从一个搜索类和一个得分手类继承
因为即时通讯基本上是EE工程师,林不知道如何与选项之间,如果这是一个常见的问题在CS琐碎模式选择设计我'米将寻找希望:
要非常代码体积效率的,因为一些搜索和评分方法在一个或两个参数的简单地不同的值不同。
很容易出现模块化和逻辑错误。
简便易用,可以
其他考虑我应该来导航?
这是我的第一个设计问题,所以它可能无效或缺少重要信息,如果是的话请通知我。
您的评分方法是根据自己的信息将分数分配给一个文件,还是对多个文件做一些更复杂的工作? – utdemir
它可以在一个文件上工作,但它确实做了复杂的工作,并将其分解为若干辅助功能。当score()函数适合时,它并不够简单。搜索方法也一样。 – idoda
搜索引擎没有在公园散步。你有什么理由在自由开放源代码工作解决方案的时候自己写一个自己的理由? –