Skip to content

Remove singleton - UIManager #65

@tttghost

Description

@tttghost

UIManager singleton remove에 대한 이슈

기존 싱글톤 구현 복기

기존 UIManager는 Unity의 모든 UI를 캐싱, 및 관리하려고 하는 성격의 매니저로 구성하여 사용했었습니다.
image
기본 구성은 UI가 최상위 클래스이고 이 UI클래스는 열고 닫는다 라는 기본 UI의 개념을 가상함수로 구현하여 사용했습니다.
image
이런식으로 IUI라는 인터페이스를 두고 사용했었지만 실제 interface를 활용하여 사용한게 아니라
단순히 클래스에 꼭 필요한 기능이다. 라는 정도로만 정의한 것 같습니다.

그리고 이 UI클래스를 상속받는 Panel클래스가 있는데
Panel클래스는 Push와 Pop의 기능이 있습니다.

아이디어

UI는

  • 연다.
  • 닫는다.
  • 열려있는지 상태를 확인한다.
  • 해당하는 데이터를 업데이트 한다.

panel은 UI의 기본기능을 상속받는다.

  • 푸쉬한다.
  • 팝한다.
  • 현재 열려있는 Panel이 뭔지 확인한다. -> 를 하려고 했으나 이걸 인터페이스 설계단에서 처리하는게 아닌거 같다는 생각이 들었습니다.

설계

interface IUI
{
    void Open();
    void Close();
    bool IsOpen{ get; set; }
    void UpdateUI();
}
interface IPanel : IUI
{
    void Push();
    void Pop();
}

궁금점

  • IUI자체도 더 잘게 쪼개서 설계 할 수 있을까요?
  • IPanel이 IUI를 상속받아 처리할 수 있을 것 같아 저렇게 설계했는데 맞을까요?

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions