Php 类方法命名问题-与扩展类冲突?

Php 类方法命名问题-与扩展类冲突?,php,class,Php,Class,这不是一个问题,更多的是一个最佳实践问题——我知道这些问题取决于意见,但我确信对于这个特定问题必须有一个标准惯例 假设我有两个类,Account和Associate Account包含几个对关联有用的方法,因此我自然会将Account类扩展到关联 但是,当我有两个同名的方法时,当然会出现一个问题,例如create() 到目前为止,为了解决这个问题,而不是扩展父类,我在子类\uu construct()方法中将其实例化为一个变量,然后通过该方法调用方法,例如$this->Account->crea

这不是一个问题,更多的是一个最佳实践问题——我知道这些问题取决于意见,但我确信对于这个特定问题必须有一个标准惯例

假设我有两个类,
Account
Associate

Account
包含几个对
关联
有用的方法,因此我自然会将
Account
类扩展到
关联

但是,当我有两个同名的方法时,当然会出现一个问题,例如
create()

到目前为止,为了解决这个问题,而不是扩展父类,我在子类
\uu construct()
方法中将其实例化为一个变量,然后通过该方法调用方法,例如
$this->Account->create()

是否有其他方法,例如,在子类中仍有同名方法的情况下使用扩展类方法的规范


任何答案都将不胜感激

如果您在子类方法中,将使用
$this
调用子类方法。但是,如果需要父方法,可以调用
parent::create()从子方法中

但是,如果您确实需要扩展Account类,这听起来是不必要的。如果“Account”类具有公共方法,则不需要对其进行扩展,只需在实例化该类后调用它们即可:

$account = new Account();
$account->create();
或者,如果是公共静态方法:

$creation = Account::create();
Account包含几个可用于关联的方法,因此我自然会将Account类扩展为Associate


不,这不是自然的,你在滥用继承权。或者你会说一名员工是一名客户吗?如果它有一个帐户,则使用合成。如果不是,但是account类具有对associate类有用的方法,那么它们可能根本不应该在account类中。将它们提取到一个或多个其他类中,这些类可供Account和Associate使用。

因为我们不知道您的域是什么,我怀疑任何人都不能如实回答您的问题。您关于滥用继承的说法是正确的。然而,在我的案例中,助理是我认为应该共享基本方法的多种帐户类型之一,例如会话/密码散列等-也许我错了?。没有“account”类型的account:)那么这取决于您如何看待它:如果
Associate
只是
account
的一种类型,那么
account
类可以具有聚合的
$type
属性(并且
Associate
将实现一个
AccountType
接口)。