# Structural Patterns

7개의 포스트
post-thumbnail

Proxy

GoF의 디자인 패턴, 프록시 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 이미 이전에 정리해 둔 Proxy를 보고오면 더 좋습니다. 핵심 요약 Proxy: 대리인 작업의 실행을 대리인을 통해 실행하도록 하는 패턴 A라는 작업을 B라는 대리인을 통해 보통 성능적 이점을 얻기 위해 사용 이 과정에서 캐싱을 통해 처리한다면 캐싱 프록시, 가상적으로 성능을 높혔다면 가상 프록시라 부름 하지만 핵심은, 대리인을 통해 어떠한 이점을 얻고 싶을 때, 이러한 패턴을 사용한다고 생각하면 됨 구조 ![](https://velog.velcdn.com/images/wansook0316/post/9d1a7715-921c-42b9-ae3c-4d18e

2023년 1월 10일
·
0개의 댓글
·
post-thumbnail

Flywight

GoF의 디자인 패턴, 플라이급 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 플라이급 - 가볍고 민첩한 복싱 선수의 체급을 의미 어떤 객체를 사용하기 위해 매번 생성하지 않고 한번만 생성함 다시 필요해지는 경우 이전에 생성된 객체를 재사용 객체 생성시 많은 자원이 소모되는 경우 적은 자원으로 필요한 객체를 재사용할 수 있음 예시 Digit 0~9 의 숫자를 화면에 표시 화면에 표시 == 픽셀로 화면에 그려야 함 많은 양의 메모리를 사용한다고 가정 이 때 사용하는 데이터는 `

2023년 1월 2일
·
0개의 댓글
·
post-thumbnail

Facade

GoF의 디자인 패턴, 파사드 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 어떤 기능을 처리하기 위해 여러 객체들 사이의 복잡한 메서드 사용을 감추는 패턴 즉, 사용하는 쪽에서는 여러 클래스를 알필요 없이 단순하게 사용할 수 있다. 블랙박스화 라고 생각해도 좋다. 라이브러리를 제공할 시 사용하면 좋다. 물론 사용하는 방법을 제한해서 제공하기 때문에, 어찌보면 사용하는 쪽에서 유연성이 떨어진다고 생각할 수도 있겠다. 다만 보통은 서브 시스템 클래스 접근도 열어주기 때문에 그렇게 생각은 잘 하지 않는 편.

2022년 9월 20일
·
0개의 댓글
·
post-thumbnail

Decorator

GoF의 디자인 패턴, 장식자 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 기능을 마치 장식 처럼 계속 추가할 수 있는 패턴 기능을 런타임에 동적으로 변경 또는 확장할 수 있는 패턴 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있음 게임 캐릭터에 추가적인 장비를 입힐때를 생각해보면 좋음 (런타임에 캐릭터 외관, 능력이 변경됨 == 기능확장) 예시 Strings: 장식할 대상이 되는 class. 문자열을 여러개

2022년 9월 20일
·
0개의 댓글
·
post-thumbnail

Composite

GoF의 디자인 패턴, 복합체 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 단일체와 집합체를 하나의 동일한 개념으로 처리하기 위한 패턴 폴더 구조, View 구조 등이 예가 될 수 있겠다. 부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리구조로 구성한다. 예시 폴더구조를 생각해보자. 파일 저장 구조는 파일과 폴더 두가지로 나눌

2022년 8월 29일
·
0개의 댓글
·
post-thumbnail

Bridge

GoF의 디자인 패턴, 가교 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 기능과 구현의 분리를 통해 시스템의 확장성과 유지보수성을 높이는 패턴 기존 시스템에 새로운 기능을 추가해도 어떠한 변경도 없이 추가가 가능하다. 특정 상황에 따라 달라져야 하는 구현을, 인자와 같은 형태로 받아서 동작을 요청하여 확장성을 제고하는 방법 두개의 개념이 독립적으로 확장되면서 서로에게 연관이 있는 경우 생각해볼만 함 설명 기능 계층 새로운 기능을 위한 메서드를 추가할 수 있는 클래스들 구현 계층 이미 정해진 인퍼페이스에 대한 구현 클래스들 이 두 계층 사이에 다리를 놓는 것과 같은 방식의 패턴을 가교 패턴이라 한다. 예시 ![](https://velog.velcdn.com/images

2022년 8월 29일
·
0개의 댓글
·
post-thumbnail

Adapter

GoF의 디자인 패턴, 적응자 패턴에 대해 알아본다. 해당 글은, 다음의 코드를 기반으로 이해하는 것이 편리합니다. 핵심 요약 일상속에서 사용하는 Adapter처럼, 특정 인터페이스를 원하는 인터페이스로 변경해주는 역할을 함 이전 클래스의 interface를 그대로 둔 채로, 변환하여 다른 쪽에서도 인터페이스를 변경하지 않고 사용할 수 있음 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응시킴 서로 일치하지 않는 인터페이스를 갖는 클래스를 함께 동작시킴 예시 사용자는 반려 동물을 키운다 (사용한다) 그런데 우리가 이전에 만들어놓았던 Tiger라는 클

2022년 8월 23일
·
0개의 댓글
·