대규모 응용 프로그램 프로젝트가 있다고 가정하면 코드는 CBaseSubsystem에서 파생 된 클래스로 구현 된 다양한 서브 시스템으로 분할됩니다. 여기C++ : 프로그램 하위 시스템을 구성하는 올바른 방법은 무엇입니까?
이미 내 첫 번째 질문에 온다 : 그것은 클래스 [기본 클래스에서 파생]로 서브 시스템을 구성하는 것이 좋습니다
- 인가가?
그런 다음 하위 시스템 클래스가 있습니다. 이제, 어딘가에 인스턴스를 생성해야합니다. 그러나 어디에서? extern CEventSystem* g_EventSystem;
이 인스턴스가 실제로 작성해야합니다 :
- 는 예를 들어 전역 변수에 저장된 모든 서브 시스템 인스턴스를 가질 수있는 좋은 아이디어인가? 모두 함께 main()와 같은 함수에 있습니까?
전역 변수를 완전히 피하고 인스턴스를
CSubsystemManager
클래스로 구성하는 것이 더 좋습니까?싱글 톤 클래스를 사용하는 것이 적절한 방법입니까?
하지만 하나의 하위 시스템이 다른 시스템과 통신하기를 원할 때마다 하위 시스템 관리자를 통해 다른 시스템을 "찾아야"합니다. 문제가되지 않습니까? – Jarx
조회 기능이 얼마나 비싼 지에 따라 다릅니다. 각 하위 시스템 유형에 대해 enum 값을 정의 할 수있는 int로 인덱싱 된 벡터에 하위 시스템 인스턴스를 저장할 수 있습니다. 또는 개체 구성에 대한 관련 하위 시스템의 조회를 수행하고 클래스 변수에 참조를 저장할 수 있습니다. 그렇게하면 한 번만 조회 할 수 있습니다. – Stephan
후자는 합리적인 해결책처럼 들립니다. 예, 감사합니다. – Jarx