Php 搜索助手应该是函数还是类

Php 搜索助手应该是函数还是类,php,oop,design-patterns,Php,Oop,Design Patterns,在我的搜索页面需求中,我需要执行以下操作 用户执行搜索的文本 (例如20k+手机+三星) 搜索优化的排序 (对于特定用户:细化是按“价格、公司、交货”的顺序进行的,对于其他用户,细化可以是“交货、价格、公司”。此类将处理此问题) 当结果较少时,某些参数的松弛。 (如果按照某种逻辑,结果较少(比如价格范围略有变化),则将应用。以增加结果数量) 搜索结果缓存 (缓存搜索结果) 对于这些操作,我创建了一个单独的类。 我想知道为这个类创建一个类或者在一些常用的搜索函数类中创建一个函数是否正确,比如说“s

在我的搜索页面需求中,我需要执行以下操作

  • 用户执行搜索的文本
    (例如20k+手机+三星)

  • 搜索优化的排序
    (对于特定用户:细化是按“价格、公司、交货”的顺序进行的,对于其他用户,细化可以是“交货、价格、公司”。此类将处理此问题)

  • 当结果较少时,某些参数的松弛。
    (如果按照某种逻辑,结果较少(比如价格范围略有变化),则将应用。以增加结果数量)

  • 搜索结果缓存
    (缓存搜索结果)

  • 对于这些操作,我创建了一个单独的类。
    我想知道为这个类创建一个类或者在一些常用的搜索函数类中创建一个函数是否正确,比如说“seachuttility”应该足够了。

    为此使用一个类也很酷,但我个人只会使用一个函数,您所有的需求都可以作为几个函数参数传递,函数将在几个静态操作后返回您最终选择的记录,仅此而已


    当我需要在不同的时间(代码的不同部分)对我的输入执行多个操作时,或者当有许多代码或函数将要使用时,我会使用类…

    因为您的问题的标签之一是OOP,OOP的原则之一是,尝试遵循SRP可能是一个好主意

    SRP的关键点在于,“责任”被定义为“改变的理由”

    从您描述的四点来看,它们似乎都可以独立更改,因此您可以使用一个类来实现它们

    根据具体的细节,您可能希望只在一个类中执行实际的搜索和排序,因为这两个类可能只被视为一个“职责”

    参数的放松听起来像是与搜索操作没有直接关系的事情,可能会发生变化并演变成相当复杂的事情。这可能应该被设计成一个单独的类,甚至可能是一个类

    现在缓存肯定应该作为一个单独的类实现,因为它是一个完全不同的职责。考虑到你可能不得不改变缓存的方式或者缓存结果,而不需要触摸搜索算法。
    另一方面,如果您的应用程序相对简单,不需要更改,并且如果您可以在四个函数中实现所有四点,并且每个函数的代码行数少于4-5行,那么您可能应该这样做。此外,如果项目的其余部分仅使用函数或使用单片对象构建,则最好坚持这种方法。运用常识

    谁能列出+ve 1。使用类而不是函数2。使用函数而不是class@IntoPuzzlesTottaly我不明白你到底是什么意思?若你们的意思是什么时候使用类,什么时候使用函数,也许也可以看看这个:我是在问我的情况,不是一般意义上的