구조패턴이란 + 종류 (쉽게 배워 바로 써먹는 디자인 패턴)

모험가·2022년 11월 18일
0
post-thumbnail

🛠️ 구조패턴

구조패턴은 객체와 클래스를 확장시키는 방법입니다.

확장

클래스는 하나의 책임. 역할로 설계됩니다. 하지만 하나의 책임으로는 전체의 기능을 구현 할 수 없습니다.

단일 책임의 원칙은 클래스의 행동을 분리하는 설계원칙입니다. 여러개로 분리된 책임과 행동은 서로 관계를 맺고 주어진 문제를 해결합니다.

객체지향 개발은 클래스를 결합하여 더 큰 객체로 확장 합니다.구조패턴은 큰 구조의 객체를 형성하고관리하는 방법에 대해 설명합니다. 객체를 확장하기위해 클래스의 상속합성을 사용합니다.

상속

상속은 객체지향 초창기시절부터 나온 개념입니다. 초기에는 객체를 확장하기위해 상속을 이용했습니다.

상속은 객체지향 고유의 특징입니다. 상속은 정적인 결합을 통해 객체를 확장합니다. 하지만 정적인 상속 결합은 대형 프로그램개발의 유연한 작업엔 한계가 있습니다.

합성

상속 결합의 단점을 보완하기 위한 기법으로 객체 합성을 사용합니다. 합성이란, 하나의 객체가 다른객체에 포함하는 것을 말합니다.

합성은 객체의 강한 의존 관계를 줄이고 유연한 객체 구조로 변결할 수 있으며, 실행 중에도 객체를 확장 할 수 있습니다.

합성을 이용한 객체 확장은, 자원을 보다 효율적으로 사용할 수 있게 합니다.

구조패턴은 상속보다 합성을 통해 다양한 객체 확장 방법을 제안합니다.


🔧 구조패턴의 종류

  • 어댑터 패턴
    인터페이스를 추상화하여 서로 다른 인터페이스를 통일화합니다. 상속을 통한 어댑터와 합성을 통한 어댑터로 구분합니다.
  • 브리지 패턴
    개념과 추상을 구분하여 처리합니다. 또한 객테의 독립으로 확장과 변형이 가능합니다.

  • 복합체 패턴
    객체의 구조를 이용하여 객체를 확장합니다. 복합 객체는 트리 구조의 특징을 갖고 있습니다.

  • 장식자 패턴
    객체의 기능을 동적으로 추가합니다. 확장 시 객체에 새로운 책임을 부과할 수 있습니다. 재귀저거 합성 방법을 응용하여 객체를 확장합니다.

  • 파사드 패턴
    복잡한 객체의 구조와 접근을 간단하게 표현하는 방법입니다.

  • 플라이웨이트 패턴
    플라이웨이트 패턴은 객체를 공유합니다. 객체 공유를 통해 자원의 효율성과 공유된 객체의 일관성을 보장합니다.

  • 프록시 패턴
    객체의 접근을 제한할 수 있습니다. 객체를 액세스 할 때 추가적인 책임을 부여하는 역할을 수행합니다.


길이 너무 길어져 구조 패턴에 대한 내용과 종류까지만으로 글을 끊습니다.
이 중 몇가지 패턴을 뽑아 정리하려합니다.

profile
부산 싸나이의 모험기

0개의 댓글