我正在运行一个服务器,有时必须搜索客户端查询的内容。我想将客户端查询写入磁盘以获取记录,但我不想再拖慢搜索速度。 (搜索已经是瓶颈......)正确使用单身设计模式
因此,当客户端执行搜索时,我让客户端的线程向单线程发送消息,该线程将处理磁盘写入,而客户端线程继续处理客户的请求。这样,磁盘上的文件不会出现同步问题,并且不会降低客户端的体验。
我在这里有一个概念性问题:在这种情况下是单身人士吗?在我最近的编程中,我一直在使用单例设计模式,并且我想确保我将它用于其预期的用途。
任何反馈,非常感谢。
如果没有看到您的整体架构,很难回答这个问题。单身模式存在缺陷(导致单元测试困难等),由您决定是否相关... – 2012-01-02 23:08:34
感谢Oli的快速反应;我已阅读过有关单元测试的困难,但并不了解整体影响。为什么要避免这种重要性的全球状态?例如,如果一个程序写入的磁盘上只有一个文件,是不是想确保它不能同时被不同的部分访问? – Sal 2012-01-02 23:14:18
全局状态的存在可能使注入依赖变得困难(这是[模拟测试](http://en.wikipedia.org/wiki/Mock_object)的基础)。请观看此讲座了解更多详情:http://googletesting.blogspot.com/2008/11/clean-code-talks-global-state-and.html。 – 2012-01-02 23:15:32