PHP中的依赖倒置原则

dan*_*car 8 php oop solid-principles dependency-inversion

由于PHP是一种松散类型的语言,如何在PHP中应用DIP原则?

一个实际的例子将不胜感激.

Fli*_*sch 3

PHP 5 引入了“类型提示”,它使函数和方法能够声明“类型化”参数(对象)。对于大多数情况,将示例(例如从 Java)移植到 PHP 5 应该不是一项艰巨的任务。

一个非常简单的例子:

interface MyClient
{
  public function doSomething();
  public function doSomethingElse();
}

class MyHighLevelObject
{
  private $client;

  public __construct(MyClient $client)
  {
    $this->client = $client;
  }

  public function getStuffDone()
  {
    if ( any_self_state_check_or_whatever )
      $client->doSomething();
    else
      $client->doSomethingElse();
  }

  // ...
}

class MyDIP implements MyClient
{
  public function doSomething()
  {
    // ...
  }

  public function doSomethingElse()
  {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 实际上这个答案并不完整,也不完整,也没有回答主要问题。DIP 与语言中的强类型无关。 (4认同)