seong
자바 디자인패턴 - Adapter패턴, FakeAdapter 예시 본문
어뎁터 패턴이란?
기존의 코드에서 요구사항에 필요한 기능이 하나 더 추가되었을 때 기존의 코드를 수정,변경하지 않고 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이 생성되어 있는 코드만 변경해주면 된다.
결과 확인
'자바 > 자바 실습' 카테고리의 다른 글
자바 디자인패턴 - Proxy패턴 (0) | 2022.09.26 |
---|---|
자바 디자인패턴 - OCP, 전략 패턴 (0) | 2022.09.26 |
자바 디자인패턴 - 싱글톤 패턴 원리 (0) | 2022.09.26 |
공공데이터 다루기 (JSON) (0) | 2022.08.23 |
Thread - 스레드를 이용한 소켓 통신 (0) | 2022.08.23 |