간편한 Java 브리지 모드
특징: 브리지 모델은 클래스의 최소 디자인 원칙을 바탕으로 봉인, 집합 및 계승 등 행위를 통해 서로 다른 클래스가 서로 다른 책임을 지도록 한다.그것의 주요 특징은 추상(abstraction)과 행위 실현(implementation)을 분리하여 각 부분의 독립성을 유지하고 그것들의 기능 확장에 대응할 수 있다는 것이다.
기업급 개발 및 상용 프레임워크에서의 응용: 다계승 구조
다만 브리지 연결 모델을 정의하고 이해하는 것은 그 작용을 정리하기 어렵다. 다음은 예를 들어 설명한다.
컴퓨터 시티에서 컴퓨터를 팔고 컴퓨터 종류는 태블릿PC, 노트북, 데스크톱으로 나뉜다.컴퓨터 브랜드는 또 연상, 데이어, 화석, 신주로 나뉘었다.만약에 다계승의 측면에서 분류를 하려면 먼저 컴퓨터 추상류를 만들어야 한다. 그 다음에 태블릿PC, 노트북컴퓨터, 데스크톱컴퓨터는 각각 추상류를 계승하고 서로 다른 컴퓨터 브랜드는 이런 컴퓨터 분류의 분류를 계승한 다음에 방법을 실현해야 한다. 만약에 컴퓨터 종류를 추가하려면 서로 다른 컴퓨터 브랜드가 이 종류를 계승하거나 컴퓨터 브랜드를 추가해야 한다.또 다른 분류를 계승해야 한다. 이렇게 하면 창설이 복잡해진다.
한편, 브리지 모델의 사상은 서로 다른 차원에서 실현되고 결합도를 높이는 방식으로 개발 작업량을 줄이는 것이다. 예를 들어 위의 컴퓨터 분류와 컴퓨터 브랜드 분류는 두 차원으로 나뉘는데 만약에 우리가 두 차원에서 각각 실현한다면 우리는 개발의 복잡도를 줄일 수 있다. 이것이 바로 자바 개발의 단일 원칙이다.
구현 코드는 다음과 같습니다.
package com.test.bridge;
interface Brand {
public void sale();
}
class Dell implements Brand {
public void sale() {
System.out.println(" ");
}
}
class Lenovo implements Brand{
public void sale() {
System.out.println(" ");
}
}
class Computer {
protected Brand brand;
public Computer(Brand b) {
this.brand = b;
}
public void sale() {
brand.sale();
}
}
class Desktop extends Computer{
public Desktop(Brand b) {
super(b);
}
@Override
public void sale() {
super.sale();
System.out.println(" ");
}
}
class Laptop extends Computer{
public Laptop(Brand b) {
super(b);
}
public void sale() {
super.sale();
System.out.println(" ");
}
}
class Pad extends Computer{
public Pad(Brand b) {
super(b);
}
@Override
public void sale() {
super.sale();
System.out.println(" ");
}
}
public class Demo {
public static void main(String[] args) {
//
Brand b = new Lenovo();
Computer c = new Laptop(b);
c.sale();
// dell
Brand b1 = new Dell();
Computer c1 = new Desktop(b1);
c1.sale();
}
}
위의 예를 통해 알 수 있듯이 우리는 브랜드(Brand)를 대상의 형식으로 컴퓨터 분류의 유형에 넣는다. 이렇게 하면 컴퓨터의 복잡도를 효과적으로 낮출 수 있고 기하학적으로 낮출 수 있으며 두 방향으로 나누어 실현하고 우리의 사고방식을 더욱 명확하게 할 수 있다.이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.