seong

자바 디자인패턴 - Adapter패턴, FakeAdapter 예시 본문

자바/자바 실습

자바 디자인패턴 - Adapter패턴, FakeAdapter 예시

hyeonseong 2022. 9. 26. 22:45

어뎁터 패턴이란?

기존의 코드에서 요구사항에 필요한 기능이 하나 더 추가되었을 때 기존의 코드를 수정,변경하지 않고 Adapter를 활용해 기능을 추가하는 방식이다.

예시를 보면서 확인

이전 커피 예제에서 단순 시럽 추가 기능 만들기

조건 - 전략패턴을 지키면서 추가

Adapter은 기존 코드의 기능은 모두 담고 있고 기능 하나만 더 추가한다, 즉 기존 기능 복사 + 기능 추가이다.

Adapter은 기존 기능이 필요하기 때문에 생성자로 주입 받고 오버로딩을 활용한다. 

코드 참고 주소  - https://github.com/seong9566/DesignPattern

FakeAdapter 

FakeAdapter 가 왜 필요한가?

아래 코드는 요구사항에 클레임 받고 -> 이메일 보내고 -> 이메일의 답장을 DB에 저장이다.

협업을 한다고 가정을 하면 

나의 역할 : 클레임을 받고, 답장을 DB에 저장하는 것

팀원의 역할 : 이메일을 보내는 라이브러리를 만드는 것

고객의 답장을 받아서 DB에 저장하기는  사과 이메일의 전송되고 난 후에 일어난다.

근데 팀원이 아직 만들지 못했다면 할 수 없다. 그래서 FakeAdapter로 테스트 로직을 만들어 실행해준다.

1. 가장 먼저 할 것은 EmailSend라는 interface를  상속해 하나 만들어달라고 부탁하고 내가 만들어 전달 해 준다.

2. Emailadapter를 만들어 EmailSend를 상속받는다 (fakeAdapter역할)

3. 본 코드로 돌아와 FakeAdapter로 사용을 하면된다.

결과 확인


이젠 팀원이 라이브러리를 모두 만들었으다고 가정하고 FakeAdapter를 사용하지 않게 변경

본 코드를 수정하지 않고 추가

본 코드의 실행에서 FakeAdapter이 생성되어 있는 코드만 변경해주면 된다.

결과 확인