我有以下课程
class InterfaceImplementation{
public function __construct(ServiceInterface $oService){
$this->oService = $oService;
}
}
当我创建类对象
时$obj = new InterfaceImplementation();
如何传递接口实例?这是正确的编码方式吗?
答案 0 :(得分:1)
可以使用任何将实现ServiceInterface
的对象并传递给构造函数。
您必须创建该类的实例,但在InterfaceImplementation
中,您将使用接口API(在接口中声明的方法),而不是特定类中的方法。
答案 1 :(得分:0)
在创建新的InterfaceImplementation
之前,您需要拥有有效的ServiceInterface
对象。获得服务对象后,您可以在创建InterfaceImplementation
$service = new ServiceInterface(); // make sure its a valid object
$implementation = new InterfaceImplementation($service);
专业提示:查找依赖注入容器。它会让你的生活变得更加轻松。