Manager클래스안에 다른매니저들에 static붙이면 안되는이유
568
작성한 질문수 5
저는 InputManager나 ResourceManager도 하나만 존재해야할것 같아서 static을 붙여주었는데 저렇게 빨간줄이 그입니다 ㅠ.. 혹시 왜이러는지 알려주실수 있을까요?
답변 2
0
기본적인 static에 대한 이해도가 부족한데,
여기서 설명하기엔 너무 방대한 내용입니다.
기초 C#을 다시 보거나 구글링을 해보시기 바랍니다.
다만 어~~어어엄청 중요한 개념이니 꼭 숙지를 하시기 바랍니다.
요약하면 class에 종속적이면 static, 객체에 종속적이면 non-static인데 구분을 할 줄 알아야 합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
클래스 내에서 static 키워드를 사용하면 그 멤버는 정적 멤버가 됩니다. 정적 멤버는 클래스 전체에서 공유되는 멤버로, 해당 클래스의 인스턴스를 생성하지 않고도 접근할 수 있습니다.
하지만 Manager 클래스 안에서 다른 매니저들에 static 키워드를 붙이는 것은 추천되지 않습니다. 이유는 다음과 같아요:
유연성과 확장성 문제: static 키워드를 사용하면 해당 매니저 객체들이 전역적인 상태를 공유하게 되는데, 이는 인스턴스 생성과정이 없기 때문에 다른 객체로의 교체나 동적인 생성이 어려워집니다. 게다가, static 멤버들은 상태를 공유하기 때문에 다른 부분에서 변경이 일어나면 모든 곳에 영향을 미칠 수 있습니다.
단일 책임 원칙: 객체 지향 프로그래밍의 원칙 중 하나인 단일 책임 원칙에 따라 Manager 클래스 같은 경우는 한 가지 책임만을 가져야 합니다. 그렇게 함으로써 클래스의 목적이 명확해지고 유지 보수와 테스트가 쉬워집니다.
대신, 여러 매니저 객체를 생성하고 사용하는 것을 권장해요. 객체 간에는 인스턴스 변수를 통해 상태를 공유할 수 있고, 필요에 따라 멤버 함수를 통해 행동을 정의할 수 있기 때문에 유지보수와 확장성 면에서 더 유연한 솔루션이 됩니다.
보다 세부적인 사항을 알고 싶다면 객체 지향 프로그래밍에 대해 더 공부해보시고, 디자인 패턴에 대해서도 살펴보시는 것을 추천드립니다. 감사합니다.
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
45
2
UI 기능 관련 질문이 있습니다!
0
47
2
픽셀 좌표 스크린 좌표
0
35
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
83
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
87
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
86
1
Input 적용과 관련하여 질문 있습니다.
0
76
1
디버그 불가.. Unity에 연결 불가
0
85
1
달리기 애니메이션 에러
0
93
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
67
1
GetKey 오류
0
114
2
에셋을 어디에 올려두신지 알 수 있나요?
0
111
1
재귀호출? 오류나는데 왜 이래요 ?
0
170
6
Animation blending 파라미터 계산
0
71
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
100
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
89
2
질문있습니다
0
144
2
아 이거 소스코드 같은거 없나요?
0
144
3
질문 드립니다. string.IsNullOrEmpty(name)
0
89
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
137
2
유니티6 NavMesh 안되는분들
1
177
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
536
1
GetComponent<Poolable> 질문드립니다.
0
104
2
UI 불러오지 못함
0
120
2





