如何获得需要接口的实现?

时间:2018-08-17 08:47:37

标签: laravel dependency-injection inversion-of-control

我有由几个类(用于不同api的驱动程序)实现的接口,并且这些驱动程序依赖于数据(某些原语数组),我编写了经理,要求在其构造函数中实现驱动程序接口并创建了服务提供商使用以下代码:

$this->app->bind('coin_name1_manager', function () {
    return new CoinsManager(new CoinName1Driver());
});
$this->app->bind('coin_name2_manager', function () {
    return new CoinsManager(new CoinName2Driver());
});
coin_name3...coin_name4...coin_name5 etc.

但是,假设我们有一个用户,他有4种不同的硬币(货币)。他想查看所有硬币帐户上的余额。在这种情况下,我必须为他创建4个具有4个不同驱动程序的经理。 例如:

app()->make('coin_name1_manager)->getBalance(array $data);
app()->make('coin_name2_manager)->getBalance(array $data);
app()->make('coin_name3_manager)->getBalance(array $data);
app()->make('coin_name4_manager)->getBalance(array $data);

数组$ data就是这样

$data = ['user_id' = 0, 'num_wallet' = 0]

我认为这不是好习惯。 有什么想法可以使其更正确吗?

0 个答案:

没有答案