1、第一点,首先说明设计模式跟实现服务容器没关系
之所以采用这个标题,是因为自己当初犯了这种错误,希望新学 laravel 的人不要犯这种跟我一样的错误。
2、我定义了接口,同时抽象类继承接口,其他具体实现类继承抽象类。
当我执行代码首次失败时,我去网上搜寻答案,他们说,你这种实现模式,就在注册服务时,应该注册抽象类,而不是接口类。但是他们这种是不对的,事实证明我的错误原因的根本不在这里。所以我想强调,如果你也这样做,那么,可以采用接口类。
3、我在抽象类中定义了构造方法,想让所有继承抽象类的子类也都继承它的构造方法。
但是我犯的错误是,我的构造函数用了 protected,所以子类无法继承。当我把我的构造函数改成 public 时,才正确。