PHP多个类实现同一接口

4
如果我在PHP中有一个接口,比如说


interface AuthenticationInterface {
}

还有两个实现该接口的类,例如

class ApiKey implements AuthenticationInterface {
}

class AuthToken implements AuthenticationInterface {
}

在实例化新的AuthenticationInterface时,如何确定使用这些类中的哪一个?

6
不能直接实例化接口,必须明确选择一个实现类来实例化。 - Austin
2
我不明白为什么你的问题会被负评。显然你是新手,本应该得到指导,却遭受了负面评价。这是怎么回事 Stackoverflow? - Dănuț Mihai Florian
你的真正问题是什么? - sectus
3个回答

5

接口用于定义继承它的类的结构(架构)。

接口是一个合同,指定一组方法、字段和属性,这些方法、字段和属性将在任何实现对象上可用。

我认为您对类工厂设计模式感兴趣。在此处阅读更多信息:php设计模式


0
如果你的对象在上游某处被实例化,并且你只知道它实现了你的AuthenticationInterface接口(所以你知道它可能是几个类中的一个...在你的情况下是2个),你可以使用"instanceof"判断出你的对象是哪个类。
if ($your_object instanceof ApiKey)
{
    echo 'object class is ApiKey';
}

0

接口无法实例化。您可以创建类的对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接