루리코딩 세상

추상 클래스, Template Method Pattern 본문

이론/C++ 키워드 정리

추상 클래스, Template Method Pattern

루리딩 2025. 6. 7. 20:54

추상 클래스

는 미완성된 설계도로, 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다. 추상 클래스는 하나 이상의 추상 메서드를 포함하고 있으며, 직접 인스턴스를 생성이 불가.
 
추상 클래스 특징(4가지)
1. 미완성 설계도
추상 메서드가 있어 자식 클래스에서 구현을 강제
 
2. 상속 용도
인스턴스 생성불가, 상속을 위한 클래스로 설계
 
3. 추상 메서드 포함
하나 이상의 추상 메서드를 포함해야함
 
4. 자식 클래스에 구현 강제
상속받는 자식클래스에서 추상 메서드를 구현함
 
사용예시!
공통 기능 정의 : 여러 자식 클래스에서 공유할 공통적인 기능(메서드)를 정의한다.
새로운 클래스를 쉽게 추가가 가능한 구조를 제공한다. 템플릿 메서드 패턴을 구현해준다.

 
 
추상 클래스와 인터페이스의 차이점?
추상 클래스 : 추상 메서드를 선택적으로 가질 수있다.
인터페이스 : 모든 메서드가 추상 메서드이다.
클래스 상속에 관련하여, 클래스는 다중 상속이 불가능하지만, 인터페이스는 다중 상속이 가능하다.
 
추상 클래스의 장점 (유연성, 확장성, 구조화)
유연성 : 추상 클래스를 상속받는 자식 클래스에서 추상 메서드를 다양하게 구현할 수 있다.
확장성 : 새로운 클래스를 쉽게 추가가 가능하다.
구조화 : 공통적인 기능을 추상화하여 코드의 구조를 명확하게 할 수 있다.


Template Method Pattern (템플릿 메서드 패턴)


템플릿 메서드(Template Method)패턴은 여러 클래스에서 공통으로 사용하는 메서드를 템플릿화하여 상위 클래스에서 정의하고, 하위 클래스마다 세부 동작 사항을 다르게 구현하는 패턴이다. 변하지 않는 기능(템플릿)은 상위 클래스에 만들어두고 자주 변경되며 확장할 기능은 하위 클래스에서 만들도록 하여, 상위의 메소드 실행 동작 순서는 고정하면서 세부 실행 내용은 다양화 될 수 있는 경우에 사용되는 것을 의미한다.
템플릿 메소드 패턴은 상속이라는 기술을 극대화하여, 알고리즘의 구조를 맞추는 것에 초점을 둬 프레임워크에서 많은 부분의 템플릿 메소드 패턴 코드를 작성하는 지금 현재의 프로젝트 예제를 떠올릴 수 있었다.

클래스 구성

 


Ref.


https://www.ibm.com/docs/ko/i/7.6.0?topic=only-abstract-classes-c

추상 클래스 (C++ 전용)

추상 클래스 는 특별히 기본 클래스로 사용되도록 설계된 클래스입니다. 추상 클래스에는 하나 이상의 순수 가상 함수가 포함되어 있습니다. 클래스 선언에서 가상 멤버 함수의 선언에 순수 지

www.ibm.com

https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%86%8C%EB%93%9CTemplate-Method-%ED%8C%A8%ED%84%B4-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90

💠 템플릿 메소드(Template Method) 패턴 - 완벽 마스터하기

Template Method Pattern 템플릿 메서드(Template Method) 패턴은 여러 클래스에서 공통으로 사용하는 메서드를 템플릿화 하여 상위 클래스에서 정의하고, 하위 클래스마다 세부 동작 사항을 다르게 구현하

inpa.tistory.com

'이론 > C++ 키워드 정리' 카테고리의 다른 글

인텔리센스(IntelliSense)  (0) 2025.06.08
OOP_추상화(Abstraction)  (0) 2025.06.07
c++ : l-value, r-value : 좌측값과 우측값  (0) 2025.06.04
디자인 패턴  (0) 2025.06.02
assert.h  (0) 2025.06.01