如何处理可以在许多类中使用的方法?

时间:2010-11-09 02:38:55

标签: php oop

这可能是一个愚蠢的问题,但无论如何我都会试一试。

这适用于PHP5。假设我有两个类Member.class.phpForum.class.php并且有一个method可以在两个类中使用returnDate($queryDate) - 对于它返回用户上次看到的日期的成员类对于论坛类,它最后回答。例如,Member: Jonny - last seen **2 mins ago**. Forum post: last answered **10 mins ago**.

我认为把这个方法放到两个类中是一个坏主意,以避免重复,所以我想知道这个接口类会派上用场吗?或者我是否做了一些明显的事情,例如为网站创建一个类,例如Website.class.php。只是想进一步理解我的理解。

1 个答案:

答案 0 :(得分:1)

假设这两个函数基本相同......

我的建议:组成>继承。

创建一个'DateHelper'类,并将其实例化为每个类的一个组件。这样你就可以获得一次代码生存(DRY!),很明显两个类之间有一些共享功能。

您也可以将方法设为静态,并调用DateHelper :: returnDate($ x),但我尝试尽量减少使用静态函数。

这种方法的优点是可以让您添加更多与日期相关的功能,并将其保存在一个可理解为与日期相关的内容的位置。