Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2017-07-10 어댑터 패턴

179 views

Published on

어댑터 패턴

Published in: Technology
  • Be the first to comment

  • Be the first to like this

2017-07-10 어댑터 패턴

  1. 1. 어댑터 패턴 Bucketplace 신부설 bsscco@gmail.com
  2. 2. 전압 변환기 소켓
  3. 3. 이미 고객이 원하는 기능을 담고있는 기 존 클래스가 있어. 이걸 사용할래. (=Adaptee) 고객이 원하는 인터 페이스 (=Target) 기존 클래스를 고객이 원 하는 인터페이스 형태를 갖도록 만들 거야. 그러기 위해 어댑터 클래 스를 사용해서 기존 클래 스를 감쌀 거야. (=Adapter)
  4. 4. 클래스 어댑터 is a 관계로 어댑터 구조를 만들어보자.
  5. 5. 기존 클래스를 고객이 원 하는 인터페이스 형태를 갖도록 만들 거야. 고객이 원하는 인터 페이스 (=Target) 기존 클래스가 있어. 이걸 사용할래. (=Adaptee) 어댑터가 인터 페이스를 구현 어댑터가 어댑티를 구현 고객쪽 코드에서 인터페이스 구현체를 사용한 다.
  6. 6. 객체 어댑터 has a 관계로 어댑터 구조를 만들어보자.
  7. 7. 기존 클래스를 고객이 원 하는 인터페이스 형태를 갖도록 만들 거야. 고객이 원하는 인터 페이스 (=Target) 기존 클래스가 있어. 이걸 사용할래. (=Adaptee)어댑터가 인터 페이스를 구현 어댑터가 어댑티를 가진다. 고객쪽 코드에서 인터페이스 구현체를 사용한 다.
  8. 8. 솔직한 후기 - 왜 쓰나요? 어댑터 패턴은 클래스 제공자가 기존의 클래스를 클래스 사용자가 원하는 사용방 법에 맞춰서 제공하려고 할 때 씁니다. 제 경우 클래스 제공자도 저고, 클래스 사용자도 저이기 때문에 그 클래스 사용법에 대해 잘 압니다. 그래서 이런 경우엔 어댑터 패턴을 적용하지 않아도 됩니다.
  9. 9. 솔직한 후기 - 왜 쓰나요? 다만, GA와 페북Analytics 같은 비슷한 서드파티 라이브러리를 사용할 때 라이브러 리마다 일관된 사용방법(init(), release(), logEvent())을 유지하기 위해 라이브러리 마다 어댑터 패턴을 적용합니다. 인터페이스까지 정의해서 강제하진 않으므로 완 전한 어댑터 패턴이라고 보긴 어렵습니다. 저는 이런 어댑터 클래스를 Wrapper 클 래스라고도 부릅니다. 장점1. 협업할 때 다른 개발자가 서드파티 라이브러리 한 개의 인터페이스만 이해 하면, 다른 서드파티 라이브러리가 쓰인 코드를 읽을 때 바로 이해할 수 있다. 장점2. 특정 작업을 삽입하고 싶을 때 어댑터 클래스가 인터셉터 역할을 해준다. 이 장점이 매우 큽니다. 실제로 대개 라이브러리는 가공을 해서 사용하게 되는데 가공 코드를 어댑터 클래스에 넣어두면 관심사의 분리, 캡슐화, 쉬운 수정의 이점을 얻습 니다.
  10. 10. 잘못 설명한 부분이나 부족한 부분에 대 해 보완해주실 분은 나눠주세요.

×