데이터를 유지하고 해당 데이터에 액세스하는 메서드 인 GameInfoList를 제공하는 클래스가 있습니다. A, B, C의 3 가지 인터페이스를 기반으로 데이터가 생성됩니다. 특정 데이터를 가져 오는 데 2 개의 인터페이스가 있습니다. D, EOOP - 클래스간에 데이터 공유
GameInfoList를 두 클래스간에 공유해야합니다. 내 접근 방식은 다음과 같습니다.
//fills GameInfoList based on interfaces called by the different clients.
class GameInfo: public A, public B, public C
{
public:
GameInfo(GameInfoList&)
//A,B,C impl
private:
GameInfoList& gameInfoList;
};
//reads GameInfoList and allow to get a particular info.
class GameInfoProvider: public D, public E
{
public:
GameInfoProvider(const GameInfoProvider&)
//D,E impl
private:
const GameInfoList& gameInfoList;
};
위의 시나리오를 나타내는 디자인 패턴이 있습니까? 내 접근 방식에 대해 어떻게 생각하십니까? 라이프 사이클이 분명하다 있도록
편집 GameInfoList, GameInfo 및 GameInfoProvider 객체는 "구성 요소"클래스에 존재합니다. 구성 요소 간의 통신은 절약에 기반을 둡니다.
편집 – Irbis
을 참조하십시오. 첫 번째 질문은 제어 역전입니다. 귀하의 두 번째 질문 : 괜찮아, 난 C + + 11'표준 : : shared_ptr' 대신 참조 회원 변수를 사용할 줄이야. – Eljay