내일배움캠프/Works

cpp를 사용한 디자인 패턴

옆집히드라 2026. 4. 23. 11:36

SOLID 원칙

  • Single Responsibility Principle
  • Open-Closed Principle
  • Liskov Substitution Principle; 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행 가능해야함
  • Interface Segregation Principle
  • Dependency Inversion Principle

의존성 역전

 

디자인 패턴

자바 구조 패턴은 어떻게 쓰일까? ❘ 요즘IT

  • 의존성 주입(Dependency Injection): 객체가 의존하는 객체를 생성하지 않고 외부에서 레퍼런스를 받아서 사용; 원칙에 가까움
  • 추상 팩토리 패턴: 순수 가상함수를 가진 추상클래스 정의, 이를 오버라이딩
  • 팩토리 메서드 패턴: 객체 생성 처리를 서브클래스로 분리하여 캡슐화; 부모 클래스에 객체를 생성하는 가상 함수 정의하고, 자식 클래스에서 오버라이딩
  • 어댑터 패턴: 호환되지 않는 두 인터페이스를 변환; Class Adapter vs Object Adapter
  • 프록시 패턴: 실제 객체에 대한 접근을 제어하기 위한 대리인을 두는 패턴; 가상 프록시(lazy initialization), 보호 프록시(접근 제어)
  • 반복자 패턴: 내부 구현 노출 없이 컨테이너의 모든 요소에 순차 접근 방법 제공; STL 제공
  • 옵저버 패턴: 이벤트로 구현; 객체 상태 변화시 구독한 옵저버들 업데이트 메서드 호출
  • 데코레이터 패턴: 파이썬 문법 생각; 래핑하고 원본 레퍼런스를 내부 멤버로 가짐
  • 책임 사슬 패턴: 요청 보내는 쪽과 받는 쪽의 결합도를 낮춤; 핸들러 추상 클래스가 다음 핸들러에 대한 포인터를 멤버 변수로 가지고, 자신이 처리 불가한 요청을 넘겨서 구현
  • 싱글턴 패턴: 내부에 정적 지역 변수 선언하는 방식 + 생성자 private

추상 팩토리 -> 단일 객체 생성에 집중 + 상속으로 구현(부모의 추상 메서드를 자식이 오버라이딩 해서 구현)

추상 팩토리 패턴 -> 연관된 객체 군 생성에 집중 + 객체 합성으로 구현(팩토리 인터페이스 내부에 여러 개의 팩토리 메서드 포함)

프록시 패턴 - 위키백과, 우리 모두의 백과사전