개요
브리지 모드는 주로 다루는 구조 모델입니다. 실제 요구로 인해 클래스는 두 가지 이상의 차원 변경이 있습니다. 상속이 방금 사용되면 이러한 요구가 달성되지 않거나 디자인이 상당히 부풀어 오릅니다.
브리지 모드는 변화하는 부품을 추상화하고, 변화하는 부품을 메인 클래스와 분리하여 여러 차원의 변화를 완전히 분리하는 것입니다. 마지막으로, 다양한 차원의 변경 사항을 결합하기위한 관리 클래스가 제공 되며이 조합은 비즈니스의 요구를 충족시키는 데 사용됩니다.
UML 구조 다이어그램
코드 예제
패키지 인터뷰; 인터페이스 구현 자 {void OperationImpl ();} Abstract Class Abstract {보호 된 구현기구; Public Abstract (구현 자 구현 자) {this.implementor = 구현 자; } public void operation () {exceuseor.operationimpl (); }} Class ConcreteImplementora 구현 도구 {@override public void operationimpl () {System.out.println ( "특정 구현 a"); }} class concreteimplementorb 구현 도구 {@override public void operationimpl () {System.out.println ( "특정 구현 b"); }} class refinedAbstraction은 초록 {public refinedAbstraction (구현 자 구현 자) {super (구현 자); } public void OtherOperation () {System.out.println ( "기타 작업"); }} public class maintest {public static void main (String arg []) {구현 자 구현 자 = 새로운 ConcreteImplementora (); RefinedAbStraction 추상화 = 새로운 정교함 (구현 자); attraction.operation (); attraction.otheroperation (); }}시나리오를 사용하십시오
1. 추상화 및 구현 부품에서 고정 바인딩 관계를 채택하지 않으려면 브리지 모드를 사용하여 추상화 및 구현 부분을 분리 한 다음 프로그램 작동 중에 추상화에 필요한 특정 구현을 동적으로 설정할 수 있으며 특정 구현을 동적으로 전환 할 수 있습니다.
2. 추상적 부분과 구현 부분을 모두 확장 할 수 있다면 브리지 모드를 사용할 수 있으므로 추상적 부분과 구현 부분을 독립적으로 변경할 수 있으므로 팽창이 서로 교반하지 않고 개별적으로 확장 될 수 있습니다. 확장의 한쪽은 다른쪽에 영향을 줄 수 있습니다.
3. 부분 수정을 구현하려면 고객에게 영향을 미치지 않습니다. 브리지 모드를 사용할 수 있습니다. 고객은 초록 지향 인터페이스를 실행하고 있습니다. 부분의 수정은 추상 부분과 무관 할 수 있으며 고객에게 영향을 미치지 않습니다. 또한 고객에게 투명하다고 말할 수 있습니다.
4. 상속 된 구현 체계가 채택되면 많은 서브 클래스가 생성됩니다. 이 경우 브리지 모드를 사용하여 기능 변경 이유를 분석하여 다른 차원으로 분리 될 수 있는지 확인한 다음 브리지 모드를 통해 분리하여 서브 클래스 수를 줄입니다.
시스템이 구성된 추상적 인 역할과 구체화 된 역할 사이에 더 많은 유연성을 추가 해야하는 경우 두 레벨간에 정적 연결을 생성하지 마십시오.
추상 캐릭터와 콘크리트 문자는 모두 서브 클래스를 만들 수 있어야합니다. 이 경우, 브리지 패턴은 다른 추상과 구체적인 역할을 유연하게 결합하고 독립적으로 확장 할 수 있습니다.
설계의 변경에 따라 구현 역할이 클라이언트에 영향을 미치지 않거나 구현 역할 변경이 클라이언트에 완전히 투명해야합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.