关于php:跨不相关的类共享功能

Sharing functions across unrelated classes

我仍然在研究面向对象的编程,远离过程编程。虽然我使用类,但我知道我仍然没有完全编写代码。我一直在阅读和尽我最大的努力获取尽可能多的信息和实践,以提高我的能力,我正在取得进展,但我目前困惑的一个领域是如何处理一个独立的函数,这个函数将在完全无关的多个类中重用。

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

对我来说,最明显的是一个特性中的公共函数库,然后我可以根据需要在一个类中使用它。然而,这是正确的做事方式吗?


是的,当然。

你不需要实用工具的特性,只要做一个图书馆。如果你想保持整洁并坚持面向对象的模式,那么就创建一些实用程序类,将执行类似任务的多个static方法组合在一起,而不是创建包含一系列污染全局范围的函数的大型PHP文件。


For example, I have a function that will generate a random alphanumeric string to a length specified by an input, and will return that string. Several classes, not related, can use this function and it makes no sense to include the function in each class.

它不是一个函数。这是一种责任。一个好的经验法则是在进行OOP时忘记函数的存在。您的函数是一个类RandomAlphanumericStringGenerator。它有一个方法generate接受$length作为输入,它将生成并返回字符串。创建该生成器的实例,并将其注入到需要此生成器的对象中。