데이터베이스 결과를 가져와 UI를 채워야하는 3 계층 응용 프로그램이 있습니다. 메시지를 처리하는 MessagesCollection 클래스가 있습니다. 데이터베이스에서 내 사용자를로드합니다. 사용자 (즉, 새로운 User())의 인스턴스 생성시 MessageCollection Messages = new MessageCollection (this)이 수행됩니다. 메시지 수집은 사용자를 매개 변수로 허용합니다.컬렉션을 통한 데이터베이스 액세스
User user = user.LoadUser("bob");
Bob에게 메시지를 보내려고합니다.
user.Messages.GetUnreadMessages();
GetUnreadMessages 차례로 데이터 액세스 레이어를 호출 내 비즈니스 데이터 공급자를 호출합니다. 비즈니스 데이터 공급자는 목록을 반환합니다.
내 질문에 - 무엇이 가장 좋은 방법이 여기에 있는지 잘 모르겠다 - MessagesCollection 클래스 내의 배열에 메시지 모음이있는 경우 ICelection을 구현하여 GetEnumerator()를 제공하고 메시지를 트래버스 할 수 있습니다. 그러나 메시지가 변경되고 사용자에게 오래된 메시지가로드되면 어떻게됩니까?
큰 메시지 콜렉션은 어떻게됩니까? 내 사용자에게 읽지 않은 메시지가 10,000 개가 있다면 어떻게 될까요? 데이터베이스에 액세스하고 10,000 개의 Message 객체를 반환하는 것이 효율적이라고 생각하지 않습니다.