由于PHP是一种松散类型的语言,如何在PHP中应用DIP原则?
非常感谢一个实际的例子。
答案 0 :(得分:1)
DIP是一个指导原则:
一个。高级模块不应该依赖于低级模块。两者都应该取决于抽象。
B中。抽象不应该依赖于细节。细节应取决于抽象。
无论天气如何"模块"实际上是类,函数,模块(php本身不存在),特征或其他任何东西。
是的你可以在PHP中使用DIP。事实上,您可以在PHP中使用它而无需编写类!您可以像在DIP下的类一样管理函数之间的依赖关系。
答案 1 :(得分:0)
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()
{
// ...
}
}