내 질문 : 데이터 무결성에 대한 걱정없이 더 나은 방법으로 설명 된 클래스를 어떻게 디자인 할 수 있습니까?데이터 컨테이너 디자인 C++
나는 Player-Container와 Player 클래스가 있습니다. 플레이어 컨테이너는 많은 스레드를위한 중앙 집중식 플레이어 "데이터 컨테이너"입니다.이 플레이어는 모두이 클래스에 대한 포인터를 가지고 있습니다. TBB 라이브러리는 읽기 전용 및 쓰기 용 잠금 메커니즘을 제공합니다. 나는 "최상위 - 컨테이너"에 그 기능을 가지고 잘못된 것 같습니다하지만이 때문에 주위에 오지 보인다 개발 더 나를 위해 지금
Class: Player-Container
Method: CreatePlayer, RemovePlayer , LoginUser, VerifyUser
Class: Player
Method: None its a pure data container
: 나는 어떤 의사 코드 내 현재의 디자인을 반영해야 컨테이너는 병렬 액세스로 인해 사용자를 수정할 수 없도록 객체를 잠글 수 있습니다 (예 : 사용자가 무언가를 작성하고이 요청을 두 번 보내고 리소스가 한 번이 아닌 두 번 줄어 듭니다).
내가하고 싶은 것 : 난 그냥 "인덱스"로 hash_map을 사용하고 "플레이어"수준을 구축해야
Class: Player-Container
Method: CreatePlayer, RemovePlayer
Class: Player
Method: LoginUser, VerifyUser,....
내 문제는, 어떻게 그것을 달성하고 여전히 데이터 무결성이 저장 될 않습니다 잠금? 몇 가지 의견과 제안이있는 것이 좋습니다. 플레이어 클래스에 대해 PlayerContainer가 실제로 알아야 할 버그가 가장 많이 들었습니다. 컨테이너에서 많이 코딩해야하는 속성을 변경하면 버그가 발생합니다.
분명하지 않은 것으로 여겨지면 문의하십시오.
감사합니다 레코드를 검색하여 잠금을 설정 한 후 플레이어에서 실제로 암호를 확인하는 메서드를 호출 한 후 (실제로 이상하게 보였던 이유는 플레이어 -화물을 사용하여 개체를 잠그고 함수를 실행 한 후 제대로 해제 할 수 있음) 어쩌면 할 수있는 일입니다. –