在不相关的类之间共享功能

时间:2013-02-16 23:04:58

标签: php oop class traits

我仍然围绕面向对象的编程工作并远离程序编程。虽然我使用的课程我知道我仍然没有完全编写我的代码OOP。我一直在阅读并尽力获取尽可能多的信息和练习以提高我的能力并且我正在取得进步,但我目前困惑的一个领域是如何处理一个独立的功能,可以在多个完全不相关的类中重复使用。

我知道我可以扩展类,或实现接口,或使用特征。我找到this post,这对澄清事情非常有帮助,但是我仍然感到困惑的是在这种情况下使用的正确方法是什么。例如,我有一个函数,它将生成一个随机字母数字字符串到一个由输入指定的长度,并将返回该字符串。几个不相关的类可以使用这个函数,在每个类中包含函数是没有意义的。

对我而言,最明显的是特征中的常用函数库,我可以根据需要在类中使用它。然而,这是正确的做事方式吗?

2 个答案:

答案 0 :(得分:2)

是的,绝对。

您不需要实用程序的特征,只需创建一个库。如果你想要整洁并坚持面向对象的范例,那么创建实用程序类,将实现类似任务的几个static方法组合在一起 - 而不是创建包含大量污染全局范围的函数的大型PHP文件。

答案 1 :(得分:0)

  

例如,我有一个函数,它将生成一个随机字母数字字符串到一个由输入指定的长度,并将返回该字符串。几个不相关的类可以使用这个函数,在每个类中包含函数是没有意义的。

这不是一个功能。这是一个responsibility。一个好的经验法则是在执行OOP时忘记函数存在。您的函数是一个类RandomAlphanumericStringGenerator。它有一个方法generate接受$length作为输入,它将生成并返回字符串。创建该Generator的实例和inject it to objects that have need for this