목차 열기

티스토리 뷰

728x90
반응형

CH1 - 오리 시뮬레이션 게임 3편 / 인터페이스 동적 활용 및 정리

이 글은 Excel VBA 에서 객체지향 디자인 패턴을 사용하는 것을 학습하며 정리하기 위한 글입니다.
내용은 책 "헤드 퍼스트 디자인 패턴 : 14가지 GoF 필살 패턴! 유지 관리가 편리한 객체지향 소프트웨어를 만드는 법"을 변형하여 적용하였습니다.
모든 코드는 GitHub의 Commit History에서 변경된 내용을 볼 수 있습니다.
Excel Office 365 with RubberDuck Add-In
GitMind - UML-클래스 다이어그램
GitHub with Visual Studio Code


이전 편에서는 오리 시뮬레이터 확장하여 Excel VBA에서 실행해보았고, 인터페이스 확장에 대해서도 알아보았습니다. 행동 인터페이스 클래스를 추가하여 오리의 행동을 위임하였죠.

원문에서는 JAVA의 상속을 이용하지만, 사실 VBA에는 상속이 없습니다! 따라서 인터페이스를 대안으로 사용하고 있습니다.

오리 행동 동적으로 지정하기

GitHub Commit History / VBA OOP / CH1 - 오리 시뮬레이션 게임 3편 / 오리 행동 동적으로 지정하기

이제 오리의 행동을 동적으로 지정해보겠습니다. 모형 오리(ModelDuck)는 땅에서 삶을 시작합니다. 아직 날지 못합니다. 하지만 날 수 있게 될겁니다.

IDuck 인터페이스 클래스 / ModelDuck 클래스

실행 중에 오리의 행동을 바꿀 수 있게 되었습니다. ModelDuck의 세터 메소드(setter method)를 이용해서 말이죠!

VBA 작동 결과

잘 작동하네요!

클래스 간의 관계 생각해보기

모든 오리는 IDuck을 중심으로 확장해서 만들었으며, 날아다니는 행동과 꽥꽥거리는 행동은 행동 인터페이스 클래스를 만들어 A에는 B가 있는 관계를 만들어냄으로써 행동을 위임했습니다. 이렇게 두 클래스를 합치는 것을 구성(composition)을 이용하였다고 합니다. 이것은 매우 중요한 테크닉이며, 세 번째 디자인 원칙이기도 합니다.

디자인 원칙 3
상속보다는 구성을 활용한다.

구성을 활용하면 유연성을 크게 향상시킬 수 있습니다. 개발이 끝나기 전과 끝난 후 중, 유지보수나 확장에 더 많은 시간이 들어가기 때문입니다. 특정 구현을 클래스 집합으로 캡슐화할 수 있으며, 행동 인터페이스를 구현하여 실행 시의 행동을 바꿀 수도 있습니다. 구성은 여러 디자인 패턴에서 쓰이며, 앞으로 구성의 장단점에 대해 다룰 것입니다.

CH1 - 첫 번째 디자인 패턴
전략 패턴 (Strategy Pattern)
알고리즘군을 정의하고 캡슐화하여, 각각의 알고리즘을 수정해서 쓸 수 있습니다. 전략 패턴을 사용하여 클라이언트로부터 알고리즘을 분리하여 독립적으로 변경할 수 있습니다.

INDEX

다음편 / CH2 - 기상 모니터링 1편 / 옵저버 패턴의 이해 및 구조 파악

VBA / INDEX

VBA / OOP / INDEX

728x90
반응형
댓글
글 보관함
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total
Today
Yesterday