我的应用程序是服务器,我的客户端会给出一些处理请求。 客户将多次联系我(服务器)以处理相同的请求。
map<clientId,ClientInformation>
通常,我会在STL Map中存储我从客户端收到的一些信息,以便下次处理客户请求。
一旦客户对我的服务感到满意,我将清除地图中相应客户ID的条目。
这是我的样本ClientInformation
类:
class ClientInformation
{
int NotRequiredForNextTime; // Information Not required for processing the client request next time
int requiredforNextTime; // Information required for processing the client request next time
int requiredforNextTime; // Information required for processing the client request next time
int NotRequiredForNextTime; // Information Not required for processing the client request next time
int NotRequiredForNextTime; // Information Not required for processing the client request next time
UserDefinedClass Class1;
};
Class UserDefinedClass
{
int requiredforNextTime;
int NotRequiredForNextTime;
}
在上面的课程中,我只需要requiredforNextTime
存储在地图中。只有在处理当前请求时才需要其他信息。
ClientInformation
类可以将用户定义的类作为成员(UserDefinedClass
),下次不需要某些UserDefinedClass
成员。
是否有任何设计模式,为此问题提供了优化解决方案(内存使用)?
答案 0 :(得分:1)
在这种情况下,只需将Not-与NotRequired-字段分开,在单独的类中。你可以......
将NotRequired-类保存在Required类中的指针中,这样您就可以delete
,或者
在NotRequired-类中使用指针保持Required-类,以便您可以将其移出到某个不同的容器,或
从一开始就将它们放在不同的容器中,或
编写一些代码来构造ClientInformation类中的Required类 - 复制必填字段(复制效率很低,但如果有的话,可能需要对现有代码进行较少的更改)。
(我不知道任何相关的设计模式名称,但不是你所做的一切,因为程序员需要通过设计模式名称进行验证 - 培养你对数据建模选项的心理意识意味着你可以应用&# 34;常识&#34;,命名或匿名。)