这不是一个问题,而是一个最佳实践问题-我知道这些问题会受到意见的影响,但我相信这个特定问题必须有一个标准的约定。
假设我有两个类,Account
和Associate
。
Account
包含几个对Associate
有用的方法,因此我自然会将Account
类扩展到Associate
。
然而,当我有两个名称相同的方法时,当然会出现一个问题,例如create()
。
到目前为止,为了抵消这种情况,我没有扩展父类,而是将其实例化为子类__construct()
方法中的一个变量,然后通过它调用方法,例如$this->Account->create();
。
是否有其他方法,例如,在子类中仍有同名方法的情况下使用扩展类方法的规范?
如有任何答案,我们将不胜感激!
Account包含几个对Associate有用的方法,因此我自然会将Account类扩展到Associate。
不,这不是自然的,你在滥用继承。或者您会说一个同事就是一个帐户吗?如果有一个帐户,请使用composition。如果不是,但是account类有对关联类有用的方法,那么它们可能根本不应该在account类中。将它们提取到一个或多个其他类中,Account和Associate都可以使用这些类。
如果您在子类方法中,则将使用$this
调用子类方法。如果您想要父方法,您可以从子方法中调用parent::create();
。
但是,如果您绝对需要扩展Account类,这听起来是不必要的。如果"Account"类有公共方法,那么您不需要扩展它,只需在实例化该类后调用它们即可:
$account = new Account();
$account->create();
或者,如果是公共静态方法:
$creation = Account::create();