php 브리지 모드 의 실례 용법 및 코드 분석
1.원래 관련 되 지 않 았 던 두 종 류 를 결합 시 킨 다음 에 두 가지 유형의 방법 과 속성 을 이용 하여 새로운 결 과 를 출력 합 니 다.
2.구 조 는 Abstraction 추상 류,RefindAbstraction 추출 된 추상 류,Implementor 실현 류,Concrete Implementor 구체 적 실현 류,Client 클 라 이언 트 코드 로 나 뉜 다.
실례
/**
*
* Class Colour
*/
abstract class Colour
{
/**
* @return mixed
*/
abstract public function run();
}
/**
*
* Class Black
*/
class Black extends Colour
{
public function run()
{
// TODO: Implement run() method.
return ' ';
}
}
/**
*
* Class White
*/
class White extends Colour
{
public function run()
{
// TODO: Implement run() method.
return ' ';
}
}
/**
*
* Class Red
*/
class Red extends Colour
{
public function run()
{
// TODO: Implement run() method.
return ' ';
}
}
/**
*
* Class Shape
*/
abstract class Shape
{
/**
*
* @var Colour
*/
protected $colour;
/**
* Shape constructor.
* @param Colour $colour
*/
public function __construct(Colour $colour)
{
$this->colour = $colour;
}
/**
* @return mixed
*/
abstract public function operation();
}
/**
*
* Class Round
*/
class Round extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . ' <br>';
}
}
/**
*
* Class Rectangle
*/
class Rectangle extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . ' <br>';
}
}
/**
*
* Class Square
*/
class Square extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . ' <br>';
}
}
//
//
$whiteRound = new Round(new White());
$whiteRound->operation();
//
$blackSquare = new Square(new Black());
$blackSquare->operation();
//
$redRectangle = new Rectangle(new Red());
$redRectangle->operation();
실행 결과흰색 원형
검은색 정사각형
적색 장방형
내용 확장:
브리지 모드
다리 연결 모델:추상 적 인 부분 과 실현 부분 을 분리 시 켜 모두 독립 적 으로 변화 시 킬 수 있다.그것 은 손잡이 체(Handle and body)모델 이나 인터페이스(Interface)모델 이 라 고도 부 르 는 구조 적 모델 이다.하나의 추상 이 여러 가지 실현 이 가능 할 때 보통 계승 으로 그들 을 조율 한다.추상 류 의 정 의 는 이 추상 적 인 인터페이스 에 대한 것 이다.구체 적 인 자 류 는 서로 다른 방식 으로 이 루어 지지 만 이 방법 은 유연 하지 못 할 때 도 있다.계승 체 제 는 추상 적 인 부분 과 그의 시선 부분 을 고정 시 켜 추상 적 인 부분 과 실현 부분 을 독립 적 으로 수정 하고 확대 하 며 충전 하기 어렵다.
브리지 모델 을 이해 하려 면 추상 화(Abstraction)와 실현 화(Implementation)를 어떻게 결합 시 켜 독립 적 으로 변화 시 킬 수 있 는 지 에 중심 을 두 어야 한다.
•추상 화:추상 화 는 일부 정 보 를 무시 하고 서로 다른 실 체 를 똑 같은 실체 로 대 하 는 것 이다.대상 을 대상 으로 하 는 과정 에서 대상 의 공통점 을 추출 하여 유형 을 형성 하 는 과정 은 추상 화 된 과정 이다.
•실현 화:추상 화 에 대한 구체 적 인 실현 은 바로 실현 화 이다.추상 화 와 실현 화 는 서로 역 동적 인 개념 으로 실현 화 된 대상 이 추상 화 보다 더욱 구체 적 이 고 추상 화 된 사물 에 대한 더욱 구체 화 된 결과 물이 다.
•탈 결합:탈 결합 은 추상 화 와 실현 화 간 의 결합 을 해탈 하거나 그들 간 의 강 한 관 계 를 약 한 관계 로 바 꾸 고 두 캐릭터 간 의 계승 관 계 를 관련 관계 로 바 꾸 는 것 이다.브리지 모델 에서 이른바 탈 결합 이란 한 소프트웨어 시스템 의 추상 화 와 실현 화 사이 에 관련 관계(조합 또는 집적 관계)를 사용 하 는 것 이 계승 관계 가 아니 라 이들 을 상대 적 으로 독립 적 으로 변화 시 킬 수 있 도록 하 는 것 을 말한다.이것 이 바로 브리지 모델 의 의도 이다.
적용 성
1).추상 과 그의 실현 부분 사이 에 고정된 국정 관계 가 있 기 를 원 하지 않 는 다.예 를 들 어 프로그램의 운행 시간 에 실현 부분 이 선택 되 거나 전환 되 어야 한다.
2).유형의 추상 과 그의 시각 은 모두 자 류 를 생 성 하 는 방법 으로 확대 할 수 있다.이때 bridge 모드 는 서로 다른 추상 적 인 인터페이스 에 대해
실현 부분 과 조합 해 이들 을 확충 한다.
3)추상 적 인 실현 부분 에 대한 수정 은 고객 에 게 영향 을 주지 않 아야 한다.즉,고객 의 코드 는 다시 컴 파일 할 필요 가 없다.
4).고객 에 게 추상 적 인 실현 부분 을 완전히 숨 기 고 싶 습 니 다.
5).여러 실현 간 에 공유 하고 싶 지만 고객 에 게 이 점 을 모 르 도록 요구 합 니 다.
phop 브리지 모델 의 인 스 턴 스 용법 및 코드 분석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.phop 브리지 모델 이 무엇 인지 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.