Bridge Pattern
- 기능과 구현을 분리하는 패턴.
- 기능과 구현을 별도의 클래스로 정의하여 서로 분리하는 방법
1. 계층 구조를 완만하게 만드는 효과
2. 구현을 사용자로부터 완벽하게 숨김
상속을 완만하게 만든다.
- interface IMp3 {
- void play();
- void stop();
- }
- class IPod implements IMp3 {
- @Override
- public void play() {
- System.out.println("play ipod");
- }
- @Override
- public void stop() {
- System.out.println("stop ipod");
- }
- }
- // 사용자가 imp3 를 직접 사용하게 하지말고 중간층을 도입.
- // 내부적으로 imp3를 사용.
- // 내부의 구현을 사용자로부터 완벽하게 숨긴다.
- // 기능과 구현을 구분한다.
- class Mp3 {
- IMp3 mp3;
- public Mp3(IMp3 mp3) {
- this.mp3 = mp3;
- }
- void play() {
- mp3.play();
- }
- void stop() {
- mp3.stop();
- }
- // 1분간 플레이 요구사항 발생
- public void playOneMinute() {
- // 1분
- mp3.play();
- }
- }
- class People {
- public void useMp3(Mp3 mp3) {
- mp3.play();
- }
- }
- public class Ex1 {
- public static void main(String... args) {
- People p = new People();
- Mp3 mp3 = new Mp3(new IPod());
- p.useMp3(mp3);
- }
- }
'java > design_pattern' 카테고리의 다른 글
Java Design Pattern 총 정리 (0) | 2014.07.01 |
---|---|
Facade Pattern - 퍼사드 패턴 (0) | 2014.07.01 |
Memento Pattern - 메멘토 패턴 (0) | 2014.07.01 |
Command Pattern - 명령패턴 (0) | 2014.07.01 |
Proxy Pattern - 대리자 패턴 (0) | 2014.07.01 |