PHP:使用接口进行依赖关系管理

时间:2015-04-24 17:21:41

标签: php interface

目前我正在研究处理PHP中依赖关系的几种方法 - 例如依赖注入,服务定位器模式以及这些的不同实现。

这个问题的一个常见问题是接口的使用。比方说我写了一个商店& amp;从某个地方检索一些数据(对于那个例子无关紧要):

class DataStuff
{
    public function store($data)
    {
        // Do stuff
    }

    public function retrieve($id)
    {
        // Do other stuff
    }
}

当我想让这个类可供其他开发人员使用或在其他项目中使用时,我已经读过它,建议使用一个接口,然后由我的实际类实现:

interface DataStuffInterface
{
    public function store($data);
    public function retrieve($id);
}

class DaDataStuff implements DataStuffInterface
{
    // Same as above
}

为什么建议使用这样的界面?

我知道这与类型提示/依赖注入有关,因为像这样的东西可以用它完成,但我真的不明白:

public function __construct(DataStuffInterface $dataStuffInterface) {
    // Do something here
}

我在哪里放置这样的代码 - 是否与工厂有关?为什么我不应该这样做:

public function __construct(DataStuff $dataStuff) {
    // Do something here
}

0 个答案:

没有答案