java 디자인 모드 07 (브리지 모드)

2139 단어
브리지 모드는 대상 구조형 모드로 손잡이 모드 또는 인터페이스 모드라고도 부른다.브리지 모델은 교묘한 방식으로 다층 계승에 존재하는 문제점을 처리하고 추상적인 관련으로 다층 계승을 대체했다. 클래스 간의 정적 계승 관계를 동태적인 대상 조합 관계로 전환시켜 시스템을 더욱 유연하고 확장하기 쉬우며 계통 중의 클래스의 개수를 효과적으로 제어했다.
브리지 모드에서 두 개의 독립된 변화의 차원을 두 개의 독립된 계승 등급 구조로 설계하고 추상층에 추상적인 관련을 구축한다. 이 관련 관계는 두 개의 독립된 계승 구조를 연결하는 다리와 유사하기 때문에 브리지 모드라고 부른다.
브리지 모델의 정의: 추상적인 부분과 그의 실현 부분을 결합시켜 둘 다 독립적으로 변화할 수 있도록 한다.
브리지 모델의 구조와 실현: 1.Abstraction(추상 클래스): 추상 클래스를 정의하는 인터페이스로 추상 클래스를 정의하는데 그 중에서 하나의 Implementor(실현 클래스 인터페이스) 유형의 대상을 정의하고 이 대상을 유지할 수 있다. 이것은 Implementor와 관련 관계를 가진다. 추상적인 업무 방법도 포함할 수 있고 구체적인 업무도 포함할 수 있다.
public abstract class Abstraction {
    
    public Implementor implementor;
    
    public void setImplementor(Implementor implementor) {
        this.implementor = implementor;
    }
    
    public abstract void operation();

}

2. Implementor(클래스 인터페이스 구현): Implementor 인터페이스는 기본 작업만 제공하고,Abstraction이 정의한 인터페이스는 더 많은 복잡한 작업을 할 수 있습니다.Implementor 인터페이스는 이러한 기본 작업에 대해 설명하고 구체적인 실현은 하위 클래스에 맡깁니다.연관 관계를 통해 Abstraction에서 자신의 방법뿐만 아니라 Implementor에서 정의한 방법을 호출하여 연관 관계를 사용하여 상속 관계를 대체할 수 있다.
public interface Implementor {

    public void operationImpl();
}

3. Refined Abstraction(추상 클래스 확장): 구체적인 실현 클래스를 위해 Abstraction에서 설명한 추상적인 업무 방법을 실현하고 임플리멘터에서 정의한 업무 방법을 호출한다.
public class RefinedAbstraction extends Abstraction {

    @Override
    public void operation() {
        // 
        implementor.operationImpl();
    }

}

4.ConcreteImplementor(구체적 실현 클래스): Implementor 인터페이스를 실현하여 서로 다른 구체적 실현 클래스에서 서로 다른 실현을 제공하고 추상적 클래스에 구체적인 업무 조작 방법을 제공한다.
public class ConcreteImplementor implements Implementor {

    @Override
    public void operationImpl() {
        System.out.println(" !");
    }

}

5.Test:
public class Test {

    public static void main(String[] args) {
        Implementor implementor=new ConcreteImplementor();
        RefinedAbstraction abstraction=new RefinedAbstraction();
        abstraction.setImplementor(implementor);
        abstraction.operation();
    }
}

좋은 웹페이지 즐겨찾기