php 브리지 모드 의 실례 용법 및 코드 분석

4781 단어 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 브리지 모델 이 무엇 인지 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기