💡구조 패턴이란?
구조 패턴이란 클래스나 객체를 더 큰 구조를 만드는 패턴
💡구조 패턴 특징
서로 독립적으로 개발한 클래스 라이브러리를 하나인 것처럼 사용 가능
인터페이스나 구현을 복합하는 것이 아니라 객체를 합성하는 방법 제공
💡구조 패턴 종류
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
💡Adapter 패턴
정의
: 그대로 사용할 수 없는 것을 필요한 형태로 변환하여 사용하는 패턴
장점
: 클래스 재활용성 증가
단점
: 클래스를 재활용할 때 추가 코드가 필요하여 복잡도가 증가하고 속도 저하
💡Bridge 패턴
정의
: 추상적인 부분과 구체적인 부분을 나눠 구현하는 패턴
장점
: 독립적으로 확장 가능
: 추상적인 부분과 구체적인 부분 분리 가능
단점
: 복잡도 증가
💡Composite 패턴
정의
: 객체들의 관계를 트리 구조로 구성하여 부분-전체로 표현하는 패턴
장점
: 객체 간 결합도를 낮추고 유연성을 높임
: 객체 구조를 변경하는데 유용
: 복잡한 트리 구조를 편리하게 사용 가능
단점
: 트리 구조가 어울리지 않는 경우 일반화해야 할 수 있음
💡Decorator 패턴
정의
: 기본 기능에 부가 기능을 추가하는 패턴
장점
: 기존 코드 수정 없이 확장 가능
: 실행 중에 기능 변경 가능
단점
: 많이 사용하면 코드가 복잡해질 수 있음
💡Facade 패턴
정의
: 바깥쪽의 코드가 라이브러리 안쪽 코드에 의존하는 일을 감소시켜 주는 패턴
장점
: 시스템 간의 결합도를 낮춤
단점
: 퍼사드 클래스가 서브 시스템에 대한 모든 의존성을 가짐
💡Flyweight 패턴
정의
: 클래스의 인스턴스 하나만 사용해서 여러 가상 인스턴스를 제공하고 싶을 때 사용하는 패턴
장점
: 메모리 줄일 수 있음
단점
: 공통된 자원을 사용하기 때문에 다르게 행동할 수 없음
💡Proxy 패턴
정의
: 원본 객체를 대신 처리하게 함으로써 로직의 흐름을 제어하는 패턴
장점
: 기존객체를 수정하지 않고 새로운 기능 추가 가능
단점
: 프록시 클래스를 도입해야 하므로 코드의 복잡도 증가
'☁️정리 > ❄️CS' 카테고리의 다른 글
[CS] 프로그래밍 패러다임 (0) | 2023.08.23 |
---|---|
[CS] MVC 패턴 (0) | 2023.08.21 |
[CS] 디자인 패턴_행위패턴 (0) | 2023.08.18 |
[CS] 디자인 패턴_생성패턴 (0) | 2023.07.12 |
[CS] 디자인 패턴 (0) | 2023.07.12 |