如何在php中的类构造函数中传递接口实例

时间:2016-02-09 03:41:21

标签: php oop constructor interface instance

我有以下课程

class InterfaceImplementation{
    public function __construct(ServiceInterface $oService){
        $this->oService = $oService;
    }
}

当我创建类对象

$obj = new InterfaceImplementation();

如何传递接口实例?这是正确的编码方式吗?

2 个答案:

答案 0 :(得分:1)

可以使用任何将实现ServiceInterface的对象并传递给构造函数。 您必须创建该类的实例,但在InterfaceImplementation中,您将使用接口API(在接口中声明的方法),而不是特定类中的方法。

答案 1 :(得分:0)

在创建新的InterfaceImplementation之前,您需要拥有有效的ServiceInterface对象。获得服务对象后,您可以在创建InterfaceImplementation

时传递它
$service = new ServiceInterface(); // make sure its a valid object
$implementation = new InterfaceImplementation($service);

专业提示:查找依赖注入容器。它会让你的生活变得更加轻松。