본문 바로가기
사이드 프로젝트/저작 도구 만들기

[저작 도구 만들기] 2주차 진행 사항 (2024.12.09 ~ 12.15)

by 맨날개발 2024. 12. 15.

🎮 작업

  • 모델을 상속받는 컴포넌트와 컴포넌트를 관리하는 매니저, 컴포넌트를 표현하는 프로퍼티 관계에 대한 인터페이스를 정의하였다.

 

🤔 고민

인터페이스 정의

모델과 엘리먼트가 높은 결합도를 가지도록 인터페이스를 정의했었다. 어떤식으로 문제를 해결해야할지 고민이 되었다. 발행-구독 패턴을 알게 되어 해당 방법으로 구현할 예정이긴 하지만 아직 사용해보진 못해 이 방법이 맞는지는 많은 시도를 해봐야 할 것 같다.

 

매니저는 모델 아이템들을 관리하고 모델에서 변경사항이 발생하면 매니저가 옵저버 역할을 담당하도록 인터페이스를 정의하였다. 추가로 매니저는 발행자의 역할도 담당하여 이벤트를 발생시킨다. 매니저가 너무 많은 역할을 담당하는게 아닐까?라는 고민이 되고, 발행자의 역할을 매니저가 아닌 모델에서 직접해도 되지 않을까 고민이 된다.

 

 

📖 배운 점

인터페이스 정의

1주차때 모델과 엘리먼트를 연결하는 인터페이스를 옵저버 패턴으로 구현하였다. 하지만 모델과 엘리먼트는 서로를 알 수 없는 관계여야 하는데 옵저버 패턴으로 구현이 되어 결합도가 높은 관계가 되었다.

이를 해결하기 위해 발행-구독 패턴을 알게 되었다. 이를 통해 모델에서 이벤트를 발생시키면 브로커에서 인터페이스로 전달하도록 작업예정이다.

 

 

⭐️어려웠던 점