我在服务层的应用程序中遇到了依赖问题。
我有以下课程:
<?php
class UserService{
private $userRepository;
private $vocationService;
private $roleService;
public function __construct(UserRepository $userRepository, VocationService $vocationService, RoleService $roleService)
{
$this->userRepository = $userRepository;
$this->vocationService = $vocationService;
$this->roleService = $roleService;
}
}
我只注入了三个依赖项。假设,我想添加下一个依赖项,例如:NextService。我的构造函数将再次增长。
如果我想在构造函数中传递更多依赖项怎么办?
也许我应该通过传递 IoC 容器然后获得理想的类来解决这个问题?这是一个例子:
<?php
class UserService{
private $userRepository;
private $vocationService;
private $roleService;
public function __construct(ContainerInterface $container)
{
$this->userRepository = $container->get('userRepo');
$this->vocationService = $container->get('vocService');
$this->roleService = $container->get('roleService');
}
}
但是现在我的UserService类依赖于我正在注入的 IoC 容器。
如何按照良好做法解决问题?
问候,亚当