반응형 Design Pattern24 C++ - 복합체, 컴포지트 패턴 (Composite Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 반복자, 이터레이터 패턴 (Iterator Pattern) - 스마트 포인터 : unique_ptr 복합체, 컴포지트 패턴 (Composite Pattern) - 구조 패턴 - 객체들을 트리 구조로 구성하여 부분-전체 계층 구조(part-whole hierarchy)를 표현하는 패턴 - 클라이언트에서 개별 객체와 다른 객체들로 구성된 복합 객체(composite)를 똑같은 방식으로 다룰 수 있다. 구현 - Component (구성 요소) : 인터페이스 또는 추상 클래스를 정의, 복합 객체와 개별 객체에 공통된 동작을 정의 - Leaf (원소) : Component를 구현, 단일 객체, 메서드를 구현 - Com.. 2024. 2. 9. C++ - 반복자, 이터레이터 패턴 (Iterator Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 연산자 오버로딩을 이용하여 구조체 출력하기 - 클래스 다이어그램 그리기 - 스마트 포인터 : unique_ptr 반복자, 이터레이터 패턴 (Iterator Pattern) - 행동 패턴 - 객체의 컬렉션을 순회하고 요소에 접근할 수 있는 방법을 제공하는 패턴 - 컬렉션의 요소에 대한 구체적인 구현을 노출시키지 않고 컬렉션을 순회 구현 - Iterator (반복자) : 컬렉션의 요소를 순회하고 접근하는 인터페이스, next()와 hasNext()를 제공 - ConcreteIterator : Iterator 인터페이스를 구현하여 실제 컬렉션에 대한 순회 및 접근 동작 구현 - Aggregate (집합체) : 어떤.. 2024. 2. 4. C++ - 옵저버 패턴 (Observer Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 옵저버 패턴 (Observer Pattern) - 행동 패턴 - 객체 간의 일대다 종속성을 정의하는 패턴 - 객체의 상태가 변경될 때, 해당 객체에 종속된 다른 객체들이 자동으로 알림을 받아 갱신하도록 한다. 구현 - 주제(Subject) 객체는 옵저버들을 관리하고 상태의 변경을 감지하고, 옵저버들에게 알림을 보낸다. - 옵저버(Observer) 객체는 주제의 상태 변경을 감지하고 처리한다. - 주제와 옵저버 클래스를 추상화하여 각각의 기본 동작을 정의하고 구체적인 클래스를 구현한다. 장점 - OCP(개방-폐쇄 원칙), 기존 코드를 변경하지 않고 새로운 주제나 옵저버를 추가할 수 있다. - 주제와 옵저버의 관계가 느슨.. 2024. 1. 30. C++ - 전략, 스트래티지 패턴 (Strategy Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고- 클래스 다이어그램 그리기- 인터페이스 vs 추상 클래스 (Java, C++ 비교)- 스마트 포인터 : unique_ptr 전략, 스트래티지 패턴 (Strategy Pattern) - 행동 패턴- 알고리즘을 캡슐화하여 동적으로 교체할 수 있도록 하는 패턴- 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. 구현- 전략 패턴에서 사용할 각 알고리즘에 대한 인터페이스를 정의 (전략 인터페이스, Strategy Interface)- 정의된 인터페이스를 구현하여 알고리즘을 구체화하는 전략 클래스 작성 (구체적인 전략, Concrete Strategies)- 컨텍스트 클래스에 전략 객체를 사용하여.. 2024. 1. 29. C++ - 싱글턴 패턴 (Singleton Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - call_once로 함수를 한 번만 호출하기 - atomic으로 원자적 연산 처리하기 (vs mutex) 싱글턴 패턴 (Singleton Pattern) - 생성 패턴 - 특정 클래스에 대해 객체 인스턴스가 하나만 만들어지도록 하고, 전역 접근을 제공하는 패턴 - 전역 변수에 객체를 대입하면 Application이 시작되고 종료되기까지 자원을 차지하지만, 싱글턴 패턴은 필요할 때만 객체를 만들 수 있다. - 실제로 객체가 필요하면 인스턴스를 직접 만들지 않고, 인스턴스를 요청하도록 구현한다. (getInstance) 구현 - 다른 객체에서 new 연산자를 사용하지 못하도록 생성자를 private으로 정의 - .. 2024. 1. 26. 아키텍처 & 디자인 패턴 용어 정리 Architecture & Design Pattern 전체 링크 오브젝트 (Object)- 데이터와 그 데이터를 처리하는 메서드의 조합으로 이루어진 소프트웨어의 기본 단위- State(attributes)와 Behavior(operations)을 가진다.- 클래스는 객체를 생성하기 위한 템플릿(Abstract Definition)이며, 객체는 클래스의 인스턴스다. 인스턴스 (Instance)- 객체지향 프로그래밍에서 클래스를 기반으로 생성된 실체- 클래스는 객체를 만들기 위한 템플릿이며, 이 템플릿을 기반으로 생성되는 것이 인스턴스 객체지향 분석 (OOA, Object-oriented Analysis)- 도메인을 이해하고, 시스템이 가져야 할 요구사항을 식별하고 분석하는 단계 (Use Case Diagr.. 2024. 1. 26. 이전 1 2 3 다음 반응형