4

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

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

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

4

2 回答 2

2

是的,一点没错。

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

于 2013-02-16T23:13:10.767 回答
0

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

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

于 2013-02-17T18:52:34.373 回答