[소프트웨어 설계 C#] 2부 구조 패턴들

  1. 적응자 패턴 (Adapter Pattern)

클라이언트가 사용하는 인터페이스에 맞게 호환성 없는 클래스를 래핑하여 호환성있게 제공하여 사용자 편의성과 유연성을 높일 수 있다.

[그림] 적응자 패턴 클래스 다이어그램
[그림] 적응자 패턴 클래스 다이어그램
  1. 가교 패턴 (Bridge Pattern)

사용해야 할 구체적 기능과 관계를 느슨하게 하기 위해 추상적 개념 클래스를 정의하고 이를 통해 구체적 기능을 사용합니다. 이를 통해 유연성이 높아집니다.

[그림] 가교 패턴 클래스 다이어그램
[그림] 가교 패턴 클래스 다이어그램
  1. 복합체 패턴 (Composite Pattern)

단일 개체와 복합 개체를 같은 방법으로 사용할 수 있게 일반화합니다.

[그림] 복합체 패턴 클래스 다이어그램
[그림] 복합체 패턴 클래스 다이어그램
  1. 장식자 패턴 (Decorator Pattern)

적은 클래스를 정의하면서 여러 기능을 무한대로 혼합하여 사용할 수 있게 합니다.

[그림] 장식자 패턴 클래스 다이어그램
[그림] 장식자 패턴 클래스 다이어그램
  1. 퍼샤드 패턴 (Facade Pattern)

다수의 서브 시스템을 사용하기 쉽게 서비스를 제공해 줍니다.

[그림] 퍼사드 패턴 클래스 다이어그램
[그림] 퍼사드 패턴 클래스 다이어그램
  1. 플라이급 패턴 (Flyweight Pattern)

다수의 개체에 공통적인 속성을 별도로 관리하여 메모리 효율을 높여줍니다.

플라이급 패턴 클래스 다이어그램
플라이급 패턴 클래스 다이어그램
  1. 프락시 패턴 (Proxy Pattern) – 원격 프락시

클라이언트에서 프락시 개체를 자신에게 있는 개체처럼 사용하여 원격지에 있는 개체를 사용할 수 있게 해 줍니다.

[그림] 원격지 프락시 클래스 다이어그램
[그림] 원격지 프락시 클래스 다이어그램
  1. 프락시 패턴 (Proxy Pattern) – 가상 프락시

대기 시간이 많은 작업을 비동기적으로 사용하여 블록을 막아줍니다.

[그림]가상 프락시 클래스 다이어그램
[그림]가상 프락시 클래스 다이어그램
  1. 프락시 패턴 (Proxy Pattern) – 보호용 프락시

접근 권한에 따라 접근을 차단할 필요가 있을 때 사용합니다.

[그림] 보호용 프록시 클래스 다이어그램
[그림] 보호용 프록시 클래스 다이어그램