Php 如何实现不同类型参数的接口方法
tl;dr 我需要有Php 如何实现不同类型参数的接口方法,php,oop,design-patterns,interface,Php,Oop,Design Patterns,Interface,tl;dr 我需要有TypeInterface::generateId($doc),其中对于实现接口的每个类都是不同的。 我该如何实现这一目标 嗨,伙计们 我被这个弄得头昏脑胀 我有一个接口(TypeInterface),它需要一个像TypeInterface::generateId(Document$doc)这样的方法,该方法将从doc规范中返回生成的id,目前为止还不错 问题 这几个文档有共同的方法,如::schema(),但所有属性都是特定于每个文档的。 因此,我制作了以下接口 Doc
TypeInterface::generateId($doc)
,其中
对于实现接口的每个类都是不同的。
我该如何实现这一目标
嗨,伙计们 我被这个弄得头昏脑胀 我有一个接口(
TypeInterface
),它需要一个像TypeInterface::generateId(Document$doc)
这样的方法,该方法将从doc规范中返回生成的id,目前为止还不错
问题
这几个文档有共同的方法,如::schema()
,但所有属性都是特定于每个文档的。
因此,我制作了以下接口
- DocumentInterface—保存所有文档必须具有的方法
- ObjectAInterface—保存文档类型A的属性的方法
- ObjectBInterface—保存文档类型B属性的方法
TypeInterface
)生成了带有ObjectAInterface的一些属性/方法的ID,而ObjectBinInterface对于TypeB类没有这些属性/方法
我打算:
public function getDocument(TypeInterface $core, DocumentInterface $document)
{
$this->client->index([
'index' => $core->getIndex()->name(),
'type' => $core->name(),
'id' => $core->generateId($document), // HERE!
'body' => $core->schema(),
]);
}
因此,$core->generateId($document)
应该是通用的,可以处理所有的类型接口
,但是特定的类型A应该与文档有某种关系
问题:
- 我怎样才能做到这一点
- 这些案例中的最佳实践
- 也许我只是想错了,有更好的方法,或者根本没有