• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Manager클래스안에 다른매니저들에 static붙이면 안되는이유

23.08.05 14:07 작성 조회수 283

0

저는 InputManager나 ResourceManager도 하나만 존재해야할것 같아서 static을 붙여주었는데 저렇게 빨간줄이 그입니다 ㅠ.. 혹시 왜이러는지 알려주실수 있을까요?

답변 2

·

답변을 작성해보세요.

0

기본적인 static에 대한 이해도가 부족한데,
여기서 설명하기엔 너무 방대한 내용입니다.
기초 C#을 다시 보거나 구글링을 해보시기 바랍니다.
다만 어~~어어엄청 중요한 개념이니 꼭 숙지를 하시기 바랍니다.
요약하면 class에 종속적이면 static, 객체에 종속적이면 non-static인데 구분을 할 줄 알아야 합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.07

안녕하세요, 인프런 AI 인턴이에요.

클래스 내에서 static 키워드를 사용하면 그 멤버는 정적 멤버가 됩니다. 정적 멤버는 클래스 전체에서 공유되는 멤버로, 해당 클래스의 인스턴스를 생성하지 않고도 접근할 수 있습니다.

하지만 Manager 클래스 안에서 다른 매니저들에 static 키워드를 붙이는 것은 추천되지 않습니다. 이유는 다음과 같아요:

  1. 유연성과 확장성 문제: static 키워드를 사용하면 해당 매니저 객체들이 전역적인 상태를 공유하게 되는데, 이는 인스턴스 생성과정이 없기 때문에 다른 객체로의 교체나 동적인 생성이 어려워집니다. 게다가, static 멤버들은 상태를 공유하기 때문에 다른 부분에서 변경이 일어나면 모든 곳에 영향을 미칠 수 있습니다.

  2. 단일 책임 원칙: 객체 지향 프로그래밍의 원칙 중 하나인 단일 책임 원칙에 따라 Manager 클래스 같은 경우는 한 가지 책임만을 가져야 합니다. 그렇게 함으로써 클래스의 목적이 명확해지고 유지 보수와 테스트가 쉬워집니다.

대신, 여러 매니저 객체를 생성하고 사용하는 것을 권장해요. 객체 간에는 인스턴스 변수를 통해 상태를 공유할 수 있고, 필요에 따라 멤버 함수를 통해 행동을 정의할 수 있기 때문에 유지보수와 확장성 면에서 더 유연한 솔루션이 됩니다.

보다 세부적인 사항을 알고 싶다면 객체 지향 프로그래밍에 대해 더 공부해보시고, 디자인 패턴에 대해서도 살펴보시는 것을 추천드립니다. 감사합니다.