我有一个 3 层应用程序,我需要在其中获取数据库结果并填充 UI。我有一个处理消息的 MessagesCollection 类。我从数据库加载我的用户。在用户实例化时(即 new User()),执行 MessageCollection Messages = new MessageCollection(this)。消息集合接受用户作为参数。
User user = user.LoadUser("bob");
我想收到给 Bob 的消息。
user.Messages.GetUnreadMessages();
GetUnreadMessages 调用我的业务数据提供者,后者又调用数据访问层。业务数据提供者返回列表。
我的问题是 - 我不确定这里的最佳实践是什么 - 如果我在 MessagesCollection 类的数组中有一组消息,我可以实现 ICollection 以提供 GetEnumerator() 和遍历消息的能力。但是如果消息发生变化并且用户加载了旧消息会发生什么?
大消息集合呢?如果我的用户有 10,000 条未读消息怎么办?我不认为访问数据库并返回 10,000 个 Message 对象会很有效。