将功能扩展到对象PHP


Extending functionality to object PHP

我正在用PHP创建一个类,我想对它进行扩展,以便该类可以具有许多基本功能。问题是功能太不同了,我不想把不同的方法混合在一个类中。由于组织性和可扩展性,我更喜欢按逻辑将它们分开。

假设我有三个类:

类用户{}

类跟踪器{}

类Lister{}

用户是表示真实对象的主要类。在不考虑类的具体功能的情况下,Tracker和Lister都提供了必须在User中应用的方法,因为它们是一种助手。如果我使用继承,我将能够每次只继承一次,必须创建许多类作为"扩展",我将添加并使用类User完成层次结构。有什么办法可以避免这样做吗?我的意思是,是否可以用其他类的功能扩展User类,而不必像我刚才所说的那样知道PHP不支持多重继承?

谢谢!

如果类帮助或修饰User类,那么使用decorator模式的实现可能会更好。

$user = new User();
//default behavior
$user->getMethod();
$tracker = new Tracker($user);
//enhanced behavior
$tracker->getMethod();