
설명하다
1. 원래 관련이 없는 두 클래스를 결합한 다음 두 클래스의 메서드와 속성을 사용하여 새로운 결과를 출력합니다.
2. 구조는 추상 클래스, 정제된 추상 클래스, 구현 클래스, 구체적인 구현 클래스 및 클라이언트 코드로 구분됩니다.
예
/**
* 색상 추상 클래스 * 클래스 색상
*/
추상 클래스 색상
{
/**
* @return 혼합
*/
추상 공용 함수 run();
}
/**
* 블랙 * 클래스 블랙
*/
클래스 블랙 확장 색상
{
공개 함수 실행()
{
// TODO: run() 메서드를 구현합니다.
'검은색'을 반환합니다.
}
}
/**
*화이트*클래스 화이트
*/
클래스 화이트 확장 색상
{
공개 함수 실행()
{
// TODO: run() 메서드를 구현합니다.
'흰색'을 반환합니다.
}
}
/**
* 레드 * 클래스 레드
*/
클래스 레드 확장 색상
{
공개 함수 실행()
{
// TODO: run() 메서드를 구현합니다.
'빨간색'을 반환합니다.
}
}
/**
* 모양 추상 클래스 * 클래스 모양
*/
추상 클래스 모양
{
/**
* 색상 * @var 색상
*/
보호된 $color;
/**
* 모양 생성자.
* @param 색상 $colour
*/
공개 함수 __construct(색상 $colour)
{
$this->색상 = $색상;
}
/**
* @return 혼합
*/
추상 공용 함수 연산();
}
/**
* 라운드 * 클래스 라운드
*/
클래스 라운드는 모양을 확장합니다.
{
/**
* @return 혼합|무효
*/
공개 함수 연산()
{
// TODO: Operation() 메서드를 구현합니다.
echo $this->color->run() '원<br>';
}
}
/**
* 직사각형 * 클래스 직사각형
*/
클래스 Rectangle은 Shape를 확장합니다.
{
/**
* @return 혼합|무효
*/
공개 함수 연산()
{
// TODO: Operation() 메서드를 구현합니다.
echo $this->color->run() '직사각형<br>';
}
}
/**
* 정사각형 * 클래스 정사각형
*/
클래스 Square는 Shape를 확장합니다.
{
/**
* @return 혼합|무효
*/
공개 함수 연산()
{
// TODO: Operation() 메서드를 구현합니다.
echo $this->color->run() '사각형<br>';
}
}
// 클라이언트 코드 // 흰색 라운드 $whiteRound = new Round(new White());
$whiteRound->작업();
// 검은색 정사각형 $blackSquare = new Square(new Black());
$blackSquare->작업();
// 빨간색 사각형 $redRectangle = new Rectangle(new Red());
$redRectangle->작업();
//실행 결과는 흰색 원, 검정색 사각형, 빨간색 사각형입니다.위 내용은 PHP 브릿지 모드에 대한 소개입니다. 모든 분들께 도움이 되기를 바랍니다.