关于以下两种方案那种更好,大家有更好的方案也可以提供更优秀的
假设现在有一个业务场景是我需要下单购买商品,现在有两种处理方式
class Order
{
public function createOrder(User $user, array $params)
{
$this->pay($user, $params);
$this->insertOrder($user, $params);
...
}
private function pay(User $user, array $params)
{
}
private function insertOrder(User $user, array $params)
{
}
}
第二种方式就是像下边这样
class Order
{
public function __construct(
private User $user,
private array $params,
)
{
}
public function createOrder()
{
$this->pay();
$this->insertOrder();
...
}
private function pay()
{
}
private function insertOrder()
{
}
}
上边两种方式,感觉第一个种使用方式对依赖注入更加友好,可以在构造函数中声明依赖关系,通过 Laravel 自动注入相关的对象。同时内部的方法也可以更加简单的让外部来调用。第二种方式使用让代码内部的逻辑更加聚合,但是感觉对依赖注入不是很友好。不知道大家有没有更加优秀的处理方案。
建议使用前者,针对需要解耦的业务再拆解。后者维护起来比较费劲。反而没有体现依赖注入的价值
我喜欢在
User
中createOrder
12结合下呢?
不要问我为什么,能不能跑? :grin: