Php,依赖注入,将东西注入另一个对象是不是很好?

时间:2017-07-08 12:37:24

标签: php dependency-injection factory

这是我的代码:

abstract class Sql { }

class MySQL extends Sql { }

class OracleSQL extends Sql { }

class A
{
    public function doA(Sql $sql) { ... }
}

class B
{
    public function doB(Sql $sql) { ... }
}

class Users
{
    public function __construct(Sql $sql)
    {
        if (rand(0,1) == 0) // depends on the circumstances
        {
             $a = new A($sql);
             $a->doA();
        }
        else
        {
             $b = new B($sql);
             $b->doB();
        }
    }
}

有一些问题:

    当然,
  • AB是硬编码的。但如果Users::constructor决定使用哪一个,如何传递它们?创建两者都是不必要的,以防万一
  • User本身不需要AB的实例,甚至不需要Sql

这个问题似乎"将信封传递给A将其带到B但是只有B有权阅读它,A仍然可以打开#34;

0 个答案:

没有答案