dan*_*car 8 php oop solid-principles dependency-inversion
由于PHP是一种松散类型的语言,如何在PHP中应用DIP原则?
一个实际的例子将不胜感激.
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)