12

PHPは緩く型付けされた言語なので、DIPの原則をPHPにどのように適用できますか?

実用的な例をいただければ幸いです。

4

2 に答える 2

3

PHP 5では、関数とメソッドが「型付き」パラメーター(オブジェクト)を宣言できるようにする「型ヒント」が導入されました。ほとんどの場合、JavaからPHP5などの例を移植することは大きな作業ではありません。

本当に簡単な例:

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()
  {
    // ...
  }
}
于 2011-03-10T07:33:41.673 に答える
1

DIPは次のガイドラインです。

A.高レベルのモジュールは低レベルのモジュールに依存すべきではありません。どちらも抽象化に依存する必要があります。

B.抽象化は詳細に依存するべきではありません。詳細は抽象化に依存する必要があります。

天気の「モジュール」が実際にはクラス、関数、モジュール(php自体には存在しない)、特性、またはその他のものであるかどうかに関係なく、関連性があります。

そうですはいPHPでDIPを使用できます。実際、クラスを作成しなくてもPHPで使用できます。DIPのクラスの場合と同じ方法で、関数間の依存関係を管理できます。

于 2016-08-04T13:27:19.737 に答える