[design-patterns] 외관과 어댑터 패턴의 차이점은 무엇입니까?

나는 두 정의를 모두 읽고 있었고 그것들은 상당히 똑같이 보입니다. 누구든지 그들의 차이점을 지적 할 수 있습니까?

감사



답변

외관 패턴 위키 페이지는이에 대한 간단한 메모가 있습니다.

“어댑터는 래퍼가 특정 인터페이스를 존중해야하고 다형성 동작을 지원해야 할 때 사용됩니다. 반면에, 작업하기 더 쉽고 간단한 인터페이스를 원할 때 파사드가 사용됩니다.”

모든 다른 스테레오 시스템에서 작동하도록 설정 한 범용 리모컨을 생각해야한다는 비유를 들었습니다. “켜기”를 누르면 케이블 박스, 수신기 및 TV가 켜집니다. 어쩌면 정말 멋진 홈 시어터이고 조명을 어둡게하고 음영도 그려줍니다. 이것이 바로 Facade입니다. 하나의 버튼 / 기능으로 더 복잡한 단계를 처리합니다.

어댑터 패턴은 호환되지 않는 두 인터페이스 만 연결합니다.

편집 : 어댑터 패턴에 대한 빠른 비유 (설명에 따라)는 DVI-to-VGA 어댑터와 비슷할 수 있습니다. 최신 비디오 카드는 종종 DVI이지만 구형 VGA 모니터가 있습니다. 비디오 카드의 예상 DVI 입력에 연결되고 자체 VGA 입력이있는 어댑터를 사용하면 기존 모니터에서 새 비디오 카드를 사용할 수 있습니다.


답변

어댑터 == 사각형 못을 둥근 구멍에 맞 춥니 다.

Facade == 모든 내부 구성 요소를 실행하는 단일 제어판.


답변

솔직히 많은 패턴이 프로그래밍 방식으로 동일한 방식으로 구현 될 수 있습니다. 차이점은 의도에 있습니다.

어댑터 디자인 패턴은 하나 이상의 클래스 인터페이스를 클라이언트가 사용할 것으로 예상하는 인터페이스로 ‘변환’하는 것을 의미합니다. 어댑터는 예상 인터페이스에 대한 호출을 래핑 된 클래스가 사용하는 실제 인터페이스로 변환합니다.

Facade 패턴은 더 간단한 인터페이스를 원할 때 사용됩니다 (다시 말하면 문제가되는 클래스를 래핑하여 동일한 방식으로 구현할 수 있습니다.) 필요한 경우에만 기존 인터페이스가 호환되지 않을 때 Facade를 사용한다고 말하지 않을 것입니다. 가독성을 높이고 디자인이 잘되지 않게 만드는 등


답변

정면:

주요 내용 : ( Pankaj Kumar의 journaldev 기사 에서 )

  1. Facade 패턴은 클라이언트 애플리케이션 의 도우미 와 비슷 합니다.
  2. Facade 패턴은 일반적으로 인터페이스 수가 증가하고 시스템이 복잡해질 때 개발의 어느 시점에서나 적용 할 수 있습니다 .
  3. 하위 시스템 인터페이스는 Facade를 인식 하지 않으며 Facade 인터페이스에 대한 참조가 없어야합니다.
  4. 유사한 종류의 인터페이스에 Facade 패턴을 적용해야합니다 . 그 목적은 유사한 종류의 작업을 수행하는 여러 인터페이스가 아닌 단일 인터페이스를 제공하는 것입니다.

외관 클래스 다이어그램 :

여기에 이미지 설명 입력

어댑터:

  1. 그것은 인 구조 패턴
  2. 두 개의 호환되지 않는 인터페이스 로 작업하는 것이 유용합니다.
  3. 그것은 사물의 일을하게 그들이 설계하고 후

어댑터 클래스 다이어그램 :

여기에 이미지 설명 입력

이 SE 게시물에서 어댑터에 대한 자세한 내용을 찾을 수 있습니다.

브리지 패턴과 어댑터 패턴의 차이점

주요 차이점 :

  1. Facade는 새 인터페이스를 정의하는 반면 Adapter는 이전 인터페이스를 사용합니다 . 어댑터는 완전히 새로운 인터페이스를 정의하는 대신 기존 인터페이스 두 개를 함께 작동하도록합니다.
  2. Adapter와 Facade는 둘 다 래퍼입니다. 그러나 그들은 다른 종류의 래퍼입니다. Facade의 목적은 더 간단한 인터페이스를 생성하는 것이고, Adapter의 목적은 기존 인터페이스를 설계하는 것입니다.

더 나은 이해를 위해 소스 메이킹 기사도 살펴보십시오 .


답변

Facade는 단일 서비스 게이트웨이 뒤에 여러 서비스를 구성하도록 설계되었습니다. 어댑터는 알려진 인터페이스를 사용하여 알 수없는 인터페이스에 액세스하는 방법을 제공하도록 설계되었습니다.


답변

목적

외관단순하다

어댑터상호 운용성 입니다.


답변

Facade는 일반적으로 Adapter와 대조됩니다.

+--------------------------------------------------------------+-----------------------------------------------+
|                            Facade                            |                    Adapter                    |
+--------------------------------------------------------------+-----------------------------------------------+
| Simplifies multiple complex components with single interface | Provides differnet interface for an interface |
| Works with multiple components                               | Works with single component                   |
| Control panel is an example                                  | A power adapter is an example                 |
| High-level interface                                         | Low-level interface                           |
+--------------------------------------------------------------+-----------------------------------------------+