본문 바로가기
반응형

까망 동네/디자인 패턴25

[디자인패턴] 커맨드 패턴 (Command Pattern) 🎈 커맨드 패턴 (Command Pattern) • 명령을 캡슐화하고 실행하기 위해 사용 • GUI 응용 프로그램, 트랜잭션 처리, 큐 관리 등에 활용 가능 • 명령 이력 관리, 역명령 실행(Undo), 동적 선택과 같은 상황에서 유용 • 디자인 패턴 중 행위 패턴에 해당된다 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] → Command Pattern #include #include class Light { public: void turnOn.. 2023. 11. 3.
[디자인패턴] 어댑터 패턴 (Adapter Pattern) 🎈 어댑터 패턴 (Adapter Pattern) • 호환되지 않는 인터페이스를 가진 두 개의 클래스를 함께 사용할 수 있게 한다. • 상속 보다는 위임하는 형태 권장 상속은 실수로라도 접근할 수 있기에 데이터를 보호하지 못할 수 있다. • 예시) 라이브러리 호환, 데이터 변환, 외부 API 통합, 로그 변환 • 디자인 패턴 중 구조 패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] #include // 기존의 온도 변환 클래스 cl.. 2023. 11. 2.
[디자인패턴] 장식자 패턴 (Decorator) 🎈 데코레이터 패턴 (Decorator Pattern) • 객체에 동적으로 기능을 추가하거나 변경할 수 있게 해주는 패턴 • 압축, 암호화, 버퍼링 기능 추가시 활용해볼 수 있다. • 디자인 패턴 중 구조 패턴에 해당된다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] → 데코레이터 패턴 적용 X #include class Coffee { public: void brew() { std::cout 2023. 11. 1.
[디자인패턴] 프로토타입 (Prototype Pattern) 🎈 프로토타입 패턴 (Prototype Pattern) • 객체 생성을 위해 다른 객체 복제 → 새로운 객체 생성보다 기존 객체 복제하는 것이 효율적인 경우 → 공통된 상태값은 유지, 필욯나 값만 변경 • 복잡한 과정으로 생성된 객체를 복사 생성할 때 유용 → 재사용성 증가 • 별도로 원형 관리자를 도입해볼 수 있다. 그렇기에 객체 상태값을 접근/변경할 수 있도록 미리 구현 필요 • 디자인 패턴에서 생성 패턴 중 하나이다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tisto.. 2023. 10. 31.
[디자인 패턴] 브릿지 패턴 (Bridge Pattern) 🎈 브릿지 패턴 (Bridge Pattern) • 새로운 인터페이스를 정의하여 기존 프로그램 변경없이 기능 확장할 수 있다. • 기능을 독립적으로 확장할 수 있다면 상세한 기능을 외부로부터 숨길 수 있는 은닉 효과도 얻을 수 있다. • 디자인 패턴 중에서 구조 패턴에 해당한다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] #include // 추상 구현 클래스 class Implementor { public: virtual void opera.. 2023. 10. 28.
[디자인패턴] 체인 패턴 (Chain of Responsibility, 책임 연쇄) 🎈 체인 패턴 (Chain of Responsibility) • 책임 전가(고리, 연쇄)라고 불리는 패턴 • 처리할 수 있는 다른 객체 연결 → 요청을 처리하거나 못해도 다음 객체로 전달한다. • 요청 자체와 각 처리 객체 사이의 결합을 피한다. → 객체 메시지 송신과 수신 분리 • 하나의 객체에서 모든 처리를 구현하지 않을 수 있다. → 객체의 의존성 주입을 통한 위임 • 디자인 패턴에서 행위 패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com .. 2023. 10. 27.
[디자인 패턴] 중재자 패턴 (Mediator Pattern) 🎈 중재자 패턴 (Mediator Pattern) • 객체들이 직접 서로 참조하지 않도록 하여 객체들간 느슨한 결합 유지 • 객체들의 상호작용을 독립적으로 다양화 시킨다. • 디자인 패턴에서 행위 패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] 중재자 패턴이 적용되지 않은 예제 #include #include class User { public: User(const std::string& name) : name(name) {} v.. 2023. 10. 22.
[디자인 패턴] 빌더 패턴 (Builder Pattern) 🎈 빌더 패턴(Builder Pattern) •빌더 패턴은 생성이 복잡한 객체를 단계적으로 만들 수 있다. → 생성 코드 따로 관리 • 객체 생성을 별도의 다른 클래스에 위임 •생성자 호출 코드를 한 줄로 생성하기 어려운 객체에 적합 • 디자인 패턴 중 생성 패턴에 해당된다. 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] 빌더 패턴을 적용하지 않고 다양한 속성을 지닌 객체를 생성해보자. #include #include class Car { pu.. 2023. 10. 21.
💻 [디자인패턴] 전략 패턴 (Strategy Pattern) 전략 패턴 (Strategy Pattern) 이란? 전략(Strategy)은 코드 내부에서 로직(Logic)을 처리하는 「알고리즘」 어떤 목적 달성을 위한 수행 방식이라고 생각하면 좋다. 영화관에서 이벤트 영화 예매 방식을 새롭게 정하고자 한다. 선입선출 / 예약제 / 랜덤 배정 등 다양한 "전략(방식)"으로 관람객을 선정할 수 있다. 이러한 전략은 기존에는 없던 새로운 전략이 생길 수도 있고 프로그램 목적에 따라서는 런타임 시간에도 계속 업데이트시 활용될 수 있다. [예제 코드] #include #include // 전략 인터페이스 (추상 클래스) class Strategy { public: virtual void execute() = 0; }; // 구체적인 전략 클래스 class ConcreteSt.. 2023. 10. 19.
[디자인패턴] 싱글턴 패턴 싱글턴(Singleton) 패턴이란? • 단, 하나의 객체를 만들어서 사용 (단일 객체) → 한번 생성되고 프로그램 종료될 때까지 메모리에 상주 • 디자인 패턴(Design Pattern)에서 "생성 패턴"에 해당 • 다른 곳에서도 해당 인스턴스로 접근해서 사용 DB Connection Pool / Thread Pool / Logging과 같이 하나의 인스턴스로 여러 객체를 관리하는 형태에서 활용 💻 디자인 패턴(Design Pattern)이란? 👨‍💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com 객체 생성은 n.. 2023. 10. 14.
반응형