用PHP组织类

Ali*_*xel 2 php oop class code-organization organization

假设我的项目中有以下类:

  • class // 验证类
  • class Math // 数字操作类

现在,如果我想验证给定数字的素数,那么插入我的Prime()方法的逻辑位置是什么?我可以想到以下选项:

  • Is_Math :: Prime()
  • Math_Is :: Prime()

我讨厌这些含糊不清的东西,这会减慢我的思维过程并经常让我误入歧途.更多例子:

  • 是:: Image()或Image :: Is()?
  • Is_Image :: PNG()或Image_Is :: PNG()?
  • Is_i18n_US :: ZipCode()或i18n_Is_US :: ZipCode()或i18n_US_Is :: ZipCode()?

在Image示例中,第一选择对我来说更有意义,而在i18n示例中我更喜欢最后一个.没有标准让我觉得整个代码库都很混乱.

组织课程是否有圣杯解决方案?也许是一个不同的范例?

Mar*_*c W 10

对于Math示例,我将实际检查数字是否为Math类中的素数.在您的Is类中,您将放置一个在需要进行验证时调用的方法.然后你会Math::Prime()从那里使用.

有了Image,这是一种类型检查.除非您确保上传了有效的图像数据,否则您可能不需要为其创建方法.

用这个PNG方法,一样的Math.将实际的PNG数据检查器算法放入Image其中并使您的验证器方法Is调用它.

邮政编码示例应该只在您的Is类中,因为它在字符串原语上运行,并且可能只使用正则表达式(读取:它不是一个复杂的方法,不像您的PNG检查器可能会这样).