在项目开发的过程中经常遇到的一个选择模式
class A
{
    private $dep;
    public function __construct($dep)
    {
        $this->dep = $dep;
    }
    public function handle()
    {
        $this->f1();
        $this->f2();
    }
    public function f1()
    {
        // 这里也依赖 $dep
    }
    public function f2()
    {
    }
}
还有下边这种模式
class A
{
    public function handle($dep)
    {
        $this->f1($dep);
        $this->f2();
    }
    public function f1($dep)
    {
        // 这里也依赖 $dep
    }
    public function f2()
    {
    }
}
针对第一种形式把参数依赖在对象内部,在调用的时候感觉相对容易,针对第二种形式感觉比较方法依赖注入,大家有没有方法论来评估这两种情况应该怎么选择
|      1Ayanokouji      2024-01-24 12:21:35 +08:00 为啥发 go 里边 | 
|      2aababc OP @Ayanokouji 我还没有完成就发布了,不知道点击到了啥 | 
|  |      3BeijingBaby      2024-01-24 12:27:01 +08:00 都可以啊,一个依赖被多处使用就构造传入。单次使用,可以方法传入。 按需选择。 | 
|  |      4happinessnch      2024-01-24 12:49:51 +08:00 OOP 的话要看 dep 和 A 的抽象关系,也看业务需求,也看设计思路。 时间充裕先设计再开发,deadline 要到了先干再说,又不是不能用。 | 
|      5aababc OP @happinessnch 老哥能不能展开说说看 | 
|  |      6happinessnch      2024-01-24 13:50:00 +08:00 比如 A 订单,dep 是 VIP 对象, 为了方便计算折扣,A 持有一个 VIP 对象就很不合适。 |