8
A
답변
3
PHP 5에서는 "유형 힌팅"이 도입되어 함수와 메소드가 "유형이 지정된"매개 변수 (객체)를 선언 할 수있게되었습니다. 대부분의 경우 예를 포팅하는 것은 큰 일이 아니어야합니다. 자바에서, PHP 5
정말 간단한 예제로 :
A. 높은 수준의 모듈은 낮은 수준의 모듈에 의존해서는 안 안 :
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()
{
// ...
}
}
0
DIP는 지침입니다. 둘 다 추상화에 의존해야합니다.
B. 추상화는 세부 사항에 의존해서는 안됩니다. 세부 사항은 추상화에 따라 달라야합니다.
날씨와 관계없이 "모듈"은 실제로 클래스, 함수, 모듈 (PHP 자체에는 존재하지 않음), 형질 또는 다른 것입니다.
그렇습니다. PHP에서 DIP를 사용할 수 있습니다. 실제로 클래스를 작성하지 않고도 PHP에서 사용할 수 있습니다! DIP 하의 클래스와 동일한 방식으로 함수 간의 종속성을 관리 할 수 있습니다.
실제로이 답변은 완전하지도 않고 완전하지도 않고 주요 문제에 답하지 않습니다. DIP는 강력한 언어 입력과는 아무 관련이 없습니다. –