4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

디자인패턴 3 - 기능의 선언과 구현을 분리하여 생각하기

르무엘 2023. 2. 21. 14:40

 

박은종의 객체지향 설계를 위한 디자인패턴 with 자바

 

기능의 선언과 구현을 분리하여 생각하기(Strategy, Bridge)

https://github.com/MyoungSoo7/DesignPattern

 

GitHub - MyoungSoo7/DesignPattern

Contribute to MyoungSoo7/DesignPattern development by creating an account on GitHub.

github.com

 

1. 전략 패턴 (Strategy) 

기능의 선언과 구현을 분리

(정렬의 경우 퀵,힙,버블 세가지의 선언과 구현을 분리 - if-else가 아니라 정책클래스 사용)

(콜센터에서 전화 배분정책을 순서대로 배분, 짧은 대기열 배분, 고객등급 콜센터직원 능력에 따른 우선순위에 따라 배분 분리)

  • 다양한 알고리즘이 존재하면 이들 각각을 하나의 클래스로 캡슐화하여 알고리즘의 대체가 가능하도록 한다. 인터페이스에 선언된 기능을 구현한 다양한 정책을 다른 클래스에 영향을 주지 않고 추가, 삭제 할 수 있다.

 

2. Bridge Pattern 

  • 기능의 확장과 구현의 확장을 따로 계층화 함
  • 두 계층을 분리하고 서로의 사이에 다리(Bridge)가 필요함
  • 기능의 구현 클래스를 런타임때 지정할 수도 있다.
  • Abstract Factory : 특정 브리지를 생성하고 합성할 수 있다.

Adapter : 서로 관련없는 클래스들이 연결 될 수 있다.

LIST