将功能扩展到对象PHP

时间:2013-08-07 10:40:19

标签: php inheritance

我正在使用PHP创建一个我想要扩展的类,因此该类可以具有许多基本功能。问题是功能是如此不同,我不想只在一个类中混合使用不同的方法。由于组织和可扩展性,我更愿意在逻辑上将它们分开。

让我们假设我有三个班级:

class User {}

class Tracker {}

class Lister {}

User是表示现实生活对象的主类。 在不关注类的具体功能的情况下,Tracker和Lister都提供必须在User中应用的方法,因为它们是一种帮助程序。如果我使用继承,我将只能继承一次必须创建许多类作为“扩展”我将使用类User添加和完成层次结构。有没有选择避免这样做?我的意思是可以使用其他类的功能扩展User类,而不必像我刚才所说的那样知道PHP不支持多重继承吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这些类帮助或装饰User类,使用装饰器模式的实现可能更好。

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

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